[Tự học C++] Bài tập C++ về Mảng(Full bài giải) » Cafedev.vn

1. Viết chương trình C++ nhập 10 giá trị nguyên, sau đó tìm giá trị lớn nhất, nhỏ nhất, tìm giá trị có tần suất xuất hiện nhiều nhất, sắp xếp mảng theo thứ tự tăng dần, giảm dần và hiển thị kết quả.

/**
* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
*
* @author cafedevn
* Contact: [email protected]
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/

#include <cstdlib> 
#include <iostream> 
using namespace std; 
int main(int argc, char *argv[]) 
{ 
  int arr[10]; 
  int mode[10][2]; 
   cout<<"Nhap 10 so nguyen\n"; 
  for(int l=0;l<10;l++) {
     cout<<"Gia tri "<<l<<" la :";cin>>arr[l]; 
}  
 //tim gia tri lon nhat va nho nhat 
 int i,j,temp; 
//sap xep mang de tim gia tri lon nhat va nho nhat 
 for(i=0;i<10;i++)
  for(j=9;j>i;j--)
     if(arr[j]<arr[j-1]) {
         int temp=arr[j]; 
         arr[j]=arr[j-1]; 
         arr[j-1]=temp;
}
                  
  cout<<"Gia tri lon nhat="<<arr[9]<<"\nGia tri nho nhat="<<arr[0]; 
  cout<<"\n"; 
//khoi tao mang 2 chieu de sap xep tan suat va gia tri
 for(i=0;i<2;i++) 
   for(j=0;j<10;j++)mode[j][i]=0; 
     mode[0][0]=1; 
  
//tim tan suat 
 for(i=0;i<10;i++) 
  for(j=0;j<10;j++) 
   if(arr[i]==arr[j+1]) {++mode[i][0];mode[i][1]=arr[i];} 
   
//tim so lan suat hien nhieu nhat 
int max; 
int k=0; 
max=mode[0][0]; 
   for(j=0;j<10;j++) 
    if(max<mode[j][0]){max=mode[j][0];k=j;} 
    
//in ket qua 
  cout<<"Gia tri xuat hien nhieu nhat la:"<<mode[k][1]<<"\n"; 
  cout<<"Xuat hien "<<max<<" lan."; 
  cout<<"\n"; 
  
  
  return 0; 
}

2. Viết một chương trình C++ để hiển thị một menu cho phép người dùng lựa chọn hoặc quan sát tất cả bản ghi của sinh viên hoặc chỉ quan sát các bản ghi của một sinh viên cụ thể bởi lựa chọn id của sinh viên đó.

==========================================================
MENU

==========================================================

1. Quan sat tat ca ban ghi cua sinh vien

2. Quan sat mot ban ghi cua sinh vien boi ID

3. Hien thi diem thi cuoi ky cao nhat va thap nhat

Nhap lua chon cua ban (1-3): 1

|ID | Kiemtra1 | Kiemtra2 | Giuaky | Cuoiky

| ==================================================

|1232 | 10 | 23 | 45 | 56 |

|2343 | 45 | 43 | 24 | 78 |

|2343 | 34 | 45 | 45 | 45 |

|3423 | 67 | 6 | 65 | 56 |

/**
* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
*
* @author cafedevn
* Contact: [email protected]
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/

#include <cstdlib>
#include <iostream>
using namespace std;
 
void showheading();
int hivalue(int stu[4][5]);
int lovalue(int stu[4][5]);
void displaymenu(){
cout<<"========================================================"<<"\n";
cout<<"                         MENU                                  "<<"\n";
cout<<"========================================================"<<"\n";
cout<<"     1. Quan sat tat ca ban ghi cua sinh vien"<<"\n";
cout<<"     2. Quan sat mot ban ghi cua sinh vien boi ID"<<"\n";
cout<<"     3. Hien thi diem thi cuoi ky cao nhat va thap nhat"<<"\n";
 
     }
void viewall(int stu[4][5]){
 int i,j;
//Hien thi tieu de
showheading();
 for(i=0;i<4;i++){
   for(j=0;j<5;j++) cout<<stu[i][j]<<"\t\t";
   cout<<"\n";
     }
}
void viewbyid(int stu[4][5]){
     int id,i,j;
     bool l=false;
     cout<<"Nhap ID cua sinh vien:";
     cin>>id;
     for(i=0;i<4;i++){
      if(stu[i][0]==id){
                        showheading();l=true;
                        for(j=0;j<5;j++)cout<<stu[i][j]<<"\t\t";}
       cout<<"\n";}
      if(l==false) cout<<"Xin loi, khong tim thay!\n";
    
     }
void showhl(int stu[4][5]){
     cout<<"Diem thi cao nhat la:"<<hivalue(stu);
     cout<<"\n";
     cout<<"Diem thi thap nhat la:"<<lovalue(stu);
     cout<<"\n";
    
     }
void showheading(){
cout<<"========================================================\n";
cout<<"ID     Kiemtra1     Kiemtra2     Giuaky      Cuoiky\n";
cout<<"========================================================\n";
     }
int hivalue(int stu[4][5]){
    int *max,i;
    max=&stu[0][4];
    for(i=0;i<4;i++)
      if(*max<stu[i][4])*max=stu[i][4];
    return(*max);
   
}
int lovalue(int stu[4][5]){
    int *min,i;
    min=&stu[0][4];
    for(i=0;i<4;i++)
      if(*min>stu[i][4])*min=stu[i][4];
    return(*min);
   
}
 
    
int main(int argc, char *argv[])
{
//xay dung mang hai chieu de luu tru ban ghi cua sinh vien
int stu[4][5]={{6001,7,7,8,9},{6002,6,8,5,8},{6003,5,6,6,7},{6004,8,9,8,9}};
 
//Hien thi menu
displaymenu();
int yourchoice;
char confirm;
do
{
cout<<"Nhap lua chon cua ban (1-3):";
cin>>yourchoice;
 
switch(yourchoice){
 case 1:viewall(stu);break;
 case 2:viewbyid(stu);break;
 case 3:showhl(stu);break;
 default:cout<<"Khong hop le";
                   }
                   
cout<<"Nhan y hoac Y de tiep tuc:";
       cin>>confirm;
}while(confirm=='y'||confirm=='Y'); 
  
  return 0;
} 

3. Viết chương trình C++ để hiển thị một bảng các số như yêu cầu đề bài sau:

12345 67 910111213141516171819202122232425

/**
* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
*
* @author cafedevn
* Contact: [email protected]
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/

#include<iostream> 
#include<conio.h> 
using namespace std; 
int main() 
    { 
     
     int tArr[5][5]; 
     int i,j;
     for(i=0;i<5;i++) //gan cac gia tri cho mang hai chieu 
        for(j=0;j<=5;j++){ 
           if(i==0) tArr[i][j]=j+1; //dien vao hang dau tien 
           if(i>0 && j==0)
              tArr[i][j]=tArr[i-1][4]+1; //lay cac gia tri cua o cuoi cung trong hang truoc do
           else 
             tArr[i][j]=tArr[i][j-1]+1; //dien vao cac o ke tiep 
             }     
            
     for(i=0;i<5;i++){ //in mang ket qua
        for(j=0;j<5;j++) 
            cout<<tArr[i][j]<<"\t"; 
        cout<<endl;   
       } 
     
     return 0; 
  
    }

4. Viết chương trình C++ để nhập và hiển thị một ma trận có kích thước là 5×5, trong đó: các phần tử trên đường chéo được điền giá trị 0, các phần tử của tam giác dưới đường chéo được điền các giá trị -1, và ở tam giác trên là được điền với các giá trị 1.

/**
* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
*
* @author cafedevn
* Contact: [email protected]
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/

#include<iostream>
#include<conio.h>
using namespace std;

   int main() 
    {
    

     int matrix[5][5]; 
     int i,j; 
     for(i=0;i<5;i++) //gan cac gia tri cho ma tran
        for(j=0;j<5;j++){
           if(i==j) matrix[i][j]=0; //neu hang=cot=> thi dien 0 
           else if(i>j) matrix[i][j]=-1; //neu hang>cot=> thi dien -1
           else matrix[i][j]=1; //neu hang<cot=> thì dien 1
             }    
            
     for(i=0;i<5;i++){ //in mang
        for(j=0;j<5;j++) 
            cout<<matrix[i][j]<<"\t"; 
        cout<<"\n";   
       } 
     
     return 0;
 

    } 

5. Viết chương trình C++ để tính tổng mỗi hàng, mỗi cột của một ma trận có kích cỡ n x m, và nếu là ma trận vuông thì tính tổng đường chéo.

/**
* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
*
* @author cafedevn
* Contact: [email protected]
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/

#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
 clrscr();
  int A[10][10],m,n,x,y,sum=0;
  //Tao mot ma tran A
  cout << "Nhap so hang va so cot cua ma tran A : \n";
  cin>>n>>m;
  cout << "Nhap cac phan tu cua ma tran A : \n";
   for(x=1;x<n+1;++x)
     for(y=1;y<m+1;++y)
     cin>>A[x][y];
     //Tim tong gia tri cua hang
   for(x=1;x<n+1;++x)
    {
     A[x][m+1]=0;
     for(y=1;y<m+1;++y)
     A[x][m+1]=A[x][m+1]+A[x][y];
    }
   //Tim tong gia tri cua cot
   for(y=1;y<m+1;++y)
    {
    A[n+1][y]=0;
    for(x=1;x<n+1;++x)
    A[n+1][y]+=A[x][y];
    }
   cout << "\nMa tran A: Tong hang (cot cuoi)" << " va Tong cot (hang cuoi) : \n";
   for(x=1;x<n+1;++x)
   {
    for(y=1;y<m+2;++y)
    cout << A[x][y] << "     ";
    cout << "\n";
    }
   //In tong moi hang
   x=n+1;
   for(y=1;y<m+1;++y)
   cout << A[x][y] << "     ";
   cout << "\n";
   if(m==n)
   {
   for(x=1;x<m+1;x++)
    for(y=1;y<n+1;y++)
      if(x==y)
       sum+=A[x][y];
      else
       if(y==m-(x+1))
       sum+=A[x][y];
    }
   cout << "Tong cac phan tu tren duong cheo la : " << sum << endl;
  
   return 0;
   }

6. Viết chương trình C++ để nhập và hiển thị tam giác Pascal. Chắc bạn đã khá quen thuộc với tam giác Pascal rồi, ở đây, hàng đầu tiên và thứ hai được thiết lập là 1. Bắt đầu từ hàng thứ ba trở đi, mỗi phần tử là tổng của phần tử ngay trên nó và phần tử bên trái của phần tử ngay trên đó.

/**
* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
*
* @author cafedevn
* Contact: [email protected]
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/

#include<iostream> 
#include<conio.h> 
using namespace std; 
void tgPascal(int size); 
int main() 
    {
     int size; 
     cout<<"Nhap kich co cua tam giac Pascal:"; 
     cin>>size; 
     tgPascal(size); 
     
     return 0; 
  
    } 
   

    void tgPascal(int size){ 
         int PascalTr[size][size]; 
         int hang,cot; 
         //gan gia tri 0 cho moi phan tu mang 
         for(hang=0;hang<size;hang++) 
            for(cot=0;cot<size;cot++)  PascalTr[hang][cot]=0; 
         //thiet lap gia tri hang thu nhat va thu hai la 1   
         PascalTr[0][0]=1; 
         PascalTr[1][0]=1; 
         PascalTr[1][1]=1; 
         
         for(hang=2;hang<size;hang++){ 
              PascalTr[hang][0]=1; 
              for(cot=1;cot<=hang;cot++){ 
                        PascalTr[hang][cot]=PascalTr[hang-1][cot-1]+PascalTr[hang-1][cot]; 
                                        } 
                            } 
          //hien thi tam giac Pascal 
          for(hang=0;hang<size;hang++){ 
            for(cot=0;cot<=hang;cot++){                
                   printf("%d\t",PascalTr[hang][cot]); 
                   } 
            cout<<endl;   
            } 
         
         }

7. Viết chương trình C++ để nhập 10 số nguyên trong một mảng một chiều, sau đó sắp xếp và in mảng đó theo thứ tự tăng dần.

/**
* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
*
* @author cafedevn
* Contact: [email protected]
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/

#include <iostream>
#include <conio.h>
using namespace std;
void main()
{

    int array[10], t;
    for(int x = 0;x < 10;x + +)
    {
        cout << "Nhap so nguyen thu " << x + 1 << " : " << endl;
        cin >> array[x];
    }
    for (intx = 0;x < 10;x + +)
    {
        for(int y = 0;y < 9;y + +)
        {
            if(array[y] > array[y + 1])
            {
                t = array[y];
                array[y] = array[y + 1];
                array[y + 1] = t;
            }
        }
    }
    cout << "Thu tu tang dan cua mang la : ";
    for (int x = 0;x < 10;x + +)
    cout << endl << array[x];
    return 0;
}

8. Viết chương trình C++ để nhập một ma trận vuông 4×4, tính tổng các phần tử trên đường chéo và sau đó in kết quả.

/**
* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
*
* @author cafedevn
* Contact: [email protected]
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/

#include <iostream>
#include <conio.h>
using namespace std;
int main()
{

    int x;
    int A[4][4], sum = 0; //doc ma tran.
    cout << "Nhap cac phan tu cua ma tran : " << endl;
    for(int y = 0;y < 4;y + +)
    for (int x = 0;x < 4;x + +)
    {
        cout << "Phan tu " << x + 1 << ", " << y + 1 << " la : ";
        cin >> A[x][y];
    }
//Tinh tong duong cheo.
    for(x = 0;x < 4;x + +)
    for(int y = 0;y < 4;y + +)
    { if(x == y)
        sum += A[x][y];
            else if(y == 4 - (1 + 1));
        sum += A[x][y];
    }
    cout << "Tong cua mot trong hai duong cheo la : " << sum;
    return 0;
}

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!