幼儿园某个班级共有学生20人,老师按照身高给学生分配座位,教室为五行四列,如果有新增小朋友,增加行。
1.定义一个整型数组,数组内容为学生身高(身高单位为厘米),学生身高用scanf函数输入。输入之后对这20个学生按照身高升序排序。
2.有一个小朋友插班进入这个班级,还按照身高将这个小朋友选择一个合适的位置,要求输出新进入小朋友的座位位置(即行号和列号)。
3.定义一个字符数组,数组内容为学生姓名(英文名),分别统计不同字母开头的小朋友的个数。例如姓名以L开头的小朋友3个,姓名以P开头的小朋友4个。

C++数组处理幼儿园排座位
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- ヾ凉秋 2021-11-19 17:54关注
#include <stdio.h> void bubble_sort(int a[],int n) { int i,j,t; for (i=0;i<n-1;i++) { for (j=0;j<n-1-i;j++) { if(a[j] > a[j+1]) //从小到大,升序 { t = a[j]; a[j]=a[j+1]; a[j+1]=t; } } } } int main() { int a[6][4],i,j; int h,row,col; char stu[21][30]={0}; int nmb[26]; //记录每个姓名开头的人数 for(i=0;i<26;i++) nmb[i]=0; for (i=0;i<5;i++) { for (j=0;j<4;j++) { scanf("%d",&a[i][j]); } } //排序 bubble_sort(&a[0][0],20); //输出 for (i=0;i<5;i++) { for (j=0;j<4;j++) printf("%d ",a[i][j]); printf("\n"); } //charu printf("请输入插入班级的小朋友身高:"); scanf("%d",&h); for (i=0;i<5;i++) { for (j=0;j<4;j++) { if(a[i][j] >= h) break; } } if(i == 5) printf("第6行第1列\n"); else printf("第%d行第%d列\n",i+1,j+1); //输入学生姓名20名 printf("请输入20名学生的姓名:\n"); for (i=0;i<5;i++) { for(j=0;j<4;j++) { gets(stu[i]); if(stu[i][j] >='a' && stu[i][j]<='z') nmb[stu[i][j]-'a']++; else if(stu[i][j] >='A' && stu[i][j]<='Z') nmb[stu[i][j]-'A']++; } } //显示 for (i=0;i<26;i++) { if(nmb[i] > 0) printf("%c开头的小朋友%d个\n",(char)('A'+i),nmb[i]); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 12无用