Viết chương trình C++ nhập 10 giá trị nguyên, sau đó tìm giá trị có tần suất xuất hiện nhiều nhất

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ả.

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 |

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 910
1112131415
1617181920
2122232425

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.

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.

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 đó.

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.

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ả.

Tìm giá trị xuất hiện nhiều nhất trong mãng và số lần xuất hiện

#include<stdio.h> #include<conio.h> #include<math.h> void nhapmang(int a[],int n) { for(int i=0;i<n;i++) { printf(" Phan tu a[%d]: ",i); scanf("%d",&a[i]); } } void xuatmang(int a[],int n) { for(int i=0;i<n;i++) { printf("%3d",a[i]); } } int Timsolanxuathien(int a[],int n) { sapxeptangdan(a,n); int max=0; int dem=1; for(int i=0;i<n;i++) { if(a[i]==a[i+1]) { dem++; if(dem>max) { max=dem; } } else { dem=1; } } return max; } int main() { int a[50],n; do { printf("\n Nhap so luong phan tu: "); scanf("%d",&n); if(n<=0) printf(" Nhap n duong!"); } while(n<=0); nhapmang(a,n); xuatmang(a,n); printf("\nMang sau khi xoa thoa yeu cau: "); int Nhieunhat= Timsolanxuathien(a,n); printf("\nSo lan nhat hien nhieu nhat la: %d",Nhieunhat); getch(); return 0; }

Em chỉ in ra đc số lần xuất hiện nhiều nhất thôi, Làm sao để xuất ra luôn phần tử xuất hiện nhiều nhất. Ai bổ sung giúp em với

Viết chương trình C++ nhập 10 giá trị nguyên, sau đó tìm giá trị có tần suất xuất hiện nhiều nhất

Bài này làm vầy được không ^^
Đầu tiên viết một hàm đếm số lần xuất hiện của 1 phần tử bất kỳ trong mang. Sau đó so sánh số lần xuất hiện của lần lược các phần tử…

int CountX(int a[], int n, int x) { //Cái này chắc tự viết được ^^ } void SoLanXuatHien(int a[], int n) { int max = a[0], vtMax = 0; for(int i= 0; i < n; i++) { if(max < CountX(a, n, a[i])) { max = CountX(a, n, a[i]); vtMax = i; } } //xuat phan tu tai vi tri i + So lan }

1 Like

#include<stdio.h> #include<conio.h> int main(){ //khai bao mangdem de chua so lan xuat hien cua moi phan tu co trong mangA. int mangA[50]={},soPhantu,mangdem[50]={}; printf("Nhap so phan tu cua mang:"); scanf("%d",&soPhantu); //Nhap mang. for(int i=0;i<soPhantu;i++){ if(i==0) printf("Nhap gia tri cho cac phan tu trong mang:\n"); printf("A[%d]=",i); scanf("%d",&mangA[i]); } for(int i=0;i<soPhantu;i++){ int dem =1;//khoi tao bien dem bang 1 vi moi phan tu it nhat phai xuat hien 1 lan. mangdem[i]=dem;// so lan xuat hien cua phan tu MangA[i] se ung voi gia tri cua phantu mangdem[i] for(int j=i+1;j<soPhantu;j++){ if(mangA[i]==mangA[j]){//kiem tra su xuat hien cua phan tu Mang[i] bang cach so sanh voi phan tu MangA[j],neu 2 phan tu nay bang nhau thi xuat hien them mot phan tu MangA[i] nua va phai tang dem len 1. mangdem[i]=++dem; for(int k=j;k<soPhantu;k++){//sau khi kiem tra neu phantu MangA[j]=MangA[j] thi sau khi tang bien dem len 1 va xoa phan tu MangA[j] de tranh lap lai viec dem phan tu do. mangA[k]=mangA[k+1]; } soPhantu--;//giam so phan tu di 1 vi ta cua xoa di mot phan tu co gia tri bang phan tu Mang A[i] j--;//giam j de viec de tranh bo xot di 1 phan tu trong cac lan kiem tra sau. } } } int max=0,vi_tri=0;//bien max chua so lan xuat hien nhieu nhat,vi_tri de chua vi tri cua phan tu xuat hien nhieu nhat trong mangA for(int i=0;i<soPhantu;i++){ if(mangdem[i]>max){//so sanh max voi cac phan tu trong mangdem neu phan tu mangdem[i] lon hon max thi gan cho max,dong thoi gan chi so i cho vi_tri max=mangdem[i]; vi_tri=i; } } printf("\nPhan tu thu %d trong mangA xuat hien nhieu nhat ,cu the la %d lan.\n",vi_tri+1,max); getch(); return 0; }

2 Likes

Viết chương trình C++ nhập 10 giá trị nguyên, sau đó tìm giá trị có tần suất xuất hiện nhiều nhất
minh_vu_03:

Bài này hình như bạn hỏi ở đây rồi mà: Tìm giá trị xuất hiện nhiều nhất và số lần xuất hiện trong MẢNG 1 chiều?

Chính xác rồi đấy

@Kelvin_Nguy_n để ý cách đặt tiêu đề nhé. Đừng đặt tiêu đề quá chung chung. Đạt đã sửa tiêu đề lại cho phù hợp.

Hehe =)) Nhờ vào your post mà mình đã xong bài này. bonus: Xuất ra luôn phần tử xuất hiện nhiều nhất, ta làm như sau: ở hàm Timsolanxuathien, ta thêm 1 thằng int xuathiennn, viết code lại thành: for(int i=0;i<n;i++) { if(a[i]==a[i+1]) { dem++; if(dem>max) { max=dem; xuathiennn=a[i];

}

} else { dem=1; } }

Rồi trong hàm main, cùng vs dòng printf Số lần xuất hiện nn, ta in thêm xuathiennn( chính là phần tử xuất hiện nn).

oops! hình như ở trên đã có người viết rồi

Viết chương trình C++ nhập 10 giá trị nguyên, sau đó tìm giá trị có tần suất xuất hiện nhiều nhất
Klq nhưng có một bài có một phần dùng cái code ở trên để giải trong Topcoder, tên là Aseries lấy 300 điểm mức Medium,mn có thể tham khảo để phát triển bài toán hơn.

Chúc mn 1 ngày tốt lành

Viết chương trình C++ nhập 10 giá trị nguyên, sau đó tìm giá trị có tần suất xuất hiện nhiều nhất

Home Categories FAQ/Guidelines Terms of Service Privacy Policy

1 code 

#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  code 

#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;

}