Một số bài C++ tham khảo...

Thảo luận trong 'C/C++' bắt đầu bởi lyvinhr00m, 14 Tháng mười 2011.

  1. Offline

    lyvinhr00m

    • cụ lý

    Số bài viết:
    1.234
    Đã được thích:
    930
    Điểm thành tích:
    900
    Share cho khóa 4 học C++ chuẩn bị kiểm tra giữa kì

    Con trỏ kí tự - full:
    Mã:
    #include <iostream>
    #include <string>
    using namespace std;
    void nhap(char *p)
    {
    	cout<<"Nhap xau..."<<endl;
    	gets(p);
    }
    void xuat(char *p)
    {
    	cout<<"Xuat..."<<endl;
    	cout<<p;
    }
    void xuatnguoc(char *p)
    {
    	for(int i=strlen(p)-1;i>=0;i--)
    	{
    		cout<<*(p+i);
    	}
    }
    void demkitu(char *p)
    {
    	int dem=0;
    	for(int i=0;i<strlen(p);i++)
    		if(*(p+i)==' ' || *(p+i)==NULL) dem+=1;
    	cout<<"\n So ki tu :"<<strlen(p)-dem;
    }
    void demtu(char *p)
    {
    	int demtu=0, i=0;
    	while(i<strlen(p))
    	{
    		if(*(p+i)==' ') 
    		{
    			i++;
    			continue;
    		}
    		else
    		{
    			while(*(p+i)!=' ')
    			{
    				i++;
    			}
    			demtu++;
    		}
    	}
    	cout<<"\n So tu:"<<demtu;
    }
    void hoa_thuong(char *p)
    {
    	int hoa=0; int thuong=0;
    	for(int i=0;i<strlen(p);i++)
    	{
    		if(*(p+i)==toupper(*(p+i)) && *(p+i)!=' ') hoa+=1; 
    		if(*(p+i)==tolower(*(p+i)) && *(p+i)!=' ') thuong+=1; 
    	}
    	cout<<"\n So ki tu hoa :"<<hoa<<endl;
    	cout<<"So ki tu thuong :"<<thuong<<endl;
    }
    void chuyen(char *p)
    {
    	for(int i=0;i<strlen(p);i++)
    		*(p+i)=toupper(*(p+i));
    	cout<<"Chuoi hoa..."<<p;
    }
    /*
    bool check(const char  *str1, const char *str2) 
    {
        if (strstr(str1,str2)) return true;
        return false;
    }*/
    void del_space(char *p)
    {
    	for(int i=0;i<strlen(p);i++)
    	{
    		if(*(p+i)==' ')
    			for(int j=i;j<strlen(p);j++)
    				*(p+j)=*(p+j+1);
    			i--;
    	}
    	cout<<p;
    }
    void main()
    {
    	char *p;char *x;
    	x=new char[100];
    	p=new char[100];
    	nhap(p);
    	xuat(p);
    	cout<<"Xuat nguoc \n"<<endl;
    	xuatnguoc(p);
    	demkitu(p);
    	demtu(p);
    	hoa_thuong(p);
    	chuyen(p);
    	cout<<endl;
    	del_space(p);
      }
    Mảng 2 chiều:
    - Nhập, xuất
    - Phần tử chẵn, tb các phần tử
    - Tổng các phần tử trên hàng/cột/đường chéo chính/ phụ
    - Kiểm tra đối xứng

    Mã:
    #include <iostream>
    using namespace std;
    void main()
    {
    	int a[10][10];
    	int m,n,i,j;
    	//Nhap, xuat mang 2 chieu
    	cout<<"Nhap so hang, so cot (m,n)"<<endl;
    	cin>>m>>n;
    	cout<<"Nhap gia tri pt mang"<<endl;
    	for(i=0;i<m;i++)
    		for(j=0;j<n;j++)
    		{
    			cout<<"a["<<i+1<<"]["<<j+1<<"]=";
    			cin>>a[i][j];
    		}
    	cout<<"Gia tri vua nhap"<<endl;
    	for(i=0;i<m;i++)
    	{
    		for(j=0;j<n;j++)
    		{
    			cout<<a[i][j]<<"\t";
    		}
    	cout<<endl;
    	}
    	cout<<endl;
    	//Cac phan tu chan
    	cout<<"Cac phan tu chan"<<endl;
    	for(i=0;i<m;i++)
    		for(j=0;j<n;j++)
    		{
    			if(a[i][j]%2==0) cout<<"a["<<i+1<<"]["<<j+1<<"]="<<a[i][j]<<"\t";
    		}
    	cout<<endl;
    	//Trung binh cong cac phan tu
    	float t=0;float tb;
    	for(i=0;i<m;i++)
    		for(j=0;j<n;j++)
    			t+=a[i][j];
    	tb=t/(m*n);
    	cout<<"TB cac phan tu = "<<tb<<endl;
    	//Tong cac phan tu tren tung hang
    	cout<<"Tong cac phan tu tren tung hang"<<endl;
    	int tong[10];
    	for(i=0;i<m;i++)
    	{
    		tong[i]=0;
    		for(j=0;j<n;j++)
    		{
    			tong[i]+=a[i][j];
    		}
    	}
    	for(i=0;i<m;i++)
    		cout<<"Hang "<<i+1<<" = "<<tong[i]<<endl;
    	//Tong cac phan tu tren tung cot
    	cout<<"Tong cac phan tu tren tung cot"<<endl;
    	for(j=0;j<n;j++)
    	{
    		float tongc=0;
    		for(i=0;i<m;i++)
    			tongc+=a[i][j];
    		cout<<"\nCot"<<j+1<<" la: "<<tongc<<endl;
    	}
    	//Tong duong cheo chinh, duong cheo phu (m=n)
    	if(m!=n) cout<<"Ko phai ma tran vuong";
    	else
    	{
    		//Duong cheo chinh
    		int dcc=0;
    		for(i=0;i<m;i++)
    			dcc+=a[i][i];
    		cout<<"Tong duong cheo chinh la: "<<dcc<<endl;
    		//Duong cheo phu
    		int dcf=0;
    		for(i=0;i<m;i++)
    			for(j=0;j<n;j++)
    				if(i==n-1-j)
    					dcf+=a[i][j];
    		cout<<"Tong duong cheo phu la:"<<dcf<<endl;
    
    	}
    	//Ma tra doi xung
    	int k;
    	for(i=0;i<m;i++)
    		for(j=0;j<n;j++)
    		{
    			if(a[i][j]==a[j][i]) k=1;
    				else k=0;
    		}
    	if(k==1) cout<<"Ma tran doi xung";
    		else cout<<"ma tran khong doi xung";
    }
    Trộn mảng, sắp xếp:

    Mã:
    #include <iostream>
    #define max 100
    using namespace std;
    //Nhap
    void nhap(int a[], int n)
    {
    	for(int i=0;i<n;i++)
    	cin>>a[i];
    }
    //Xuat
    void xuat(int a[], int n)
    {
    	for(int i=0;i<n;i++)
    		cout<<a[i]<<"\t";
    }
    //Tron
    void tron(int a[],int b[],int c[], int n, int m)
    { 
        for (int i=0;i<n;i++) 
         { 
            c[i]=a[i]; 
         } 
          
         i=n; 
         for (int j=0;j<m;j++) 
          { 
             c[i+j]=b[j]; 
        } 
    }
    //Sap xep
    void sapxep(int a[], int n)
    {
    	for(int i=0;i<n-1;i++)
    		for(int j=i+1;j<n;j++)
    			if(a[i]>a[j])
    			{
    				int temp=a[i];
    				a[i]=a[j];
    				a[j]=temp;
    			}
    }
    
    void main()
    {
    	int a[max], b[max], c[max];
    	int n1,n2;
    	cout<<"Nhap so phan tu mang 1"<<endl;
    	cin>>n1;
    	cout<<"Nhap gia tri phan tu mang 1"<<endl;
    	nhap(a,n1);
    	cout<<endl;
    	cout<<"Nhap so phan tu mang 2"<<endl;
    	cin>>n2;
    	cout<<"Nhap gia tri phan tu mang 2"<<endl;
    	nhap(b,n2);
    	cout<<endl;
    	cout<<"Gia tri 1 mang vua nhap"<<endl;
    	cout<<"Mang 1"<<endl;
    	xuat(a,n1); cout<<endl;
    	cout<<"Mang 2"<<endl;
    	xuat(b,n2); cout<<endl;
    	cout<<"--------------------------";
    	tron(a,b,c,n1,n2);
    	sapxep(c,n1+n2);
    	cout<<"Hai mang sau khi tron"<<endl;
    	xuat(c,n1+n2);
    
    }
    comotniemtin thích bài này.
  2. Offline

    soidaohoa

    • Windows NT

    Số bài viết:
    211
    Đã được thích:
    70
    Điểm thành tích:
    60
    sao không gui sớm, thi xong rui mà
  3. Offline

    lyvinhr00m

    • cụ lý

    Số bài viết:
    1.234
    Đã được thích:
    930
    Điểm thành tích:
    900
    Vậy thì để kiểm tra cuối kì hay thi lại gì cũng được ;))
  4. Offline

    chjr0

    • Thành Viên Mới

    Số bài viết:
    2
    Đã được thích:
    0
    Điểm thành tích:
    0
    có ad nào chỉ hộ bài đảo mảng và tách mảng vs

Chia sẻ trang này

Advertising: Linux system admin | nukeviet | nukeviet 4 | Upload ảnh miễn phí