当前位置:文档之家› C语言程序设计第六章课后习题

C语言程序设计第六章课后习题

习题2 已知一个班10个学生的成绩,存放在一个 一维数组中,要求找出其中成绩最高的学生的 成绩和该生的序号 #include<stdio.h> void main() { int ch[10]; int i,max=0,xh; printf("请输入10个学生的成绩:\n"); for(i=0;i<10;i++) { scanf("%d",&ch[i]); if(ch[i]>max) { max=ch[i]; xh=i; } } printf("成绩最高为:%d\n",max); printf("该生的序号为:%d\n",xh); }
习题4 已知5个学生的4门课成绩,要求求出每个 学生的平均成绩,然后对平均成绩从高到低将 各学生的成绩排序记录(成绩最高的学生排在 数组最前面的行,成绩最低的学生排在数组最 后面的行)
#include <stdio.h> void main () { int i,j,k; float a[5][5]={{78,79,90,67},{60,76,89,63}, {86,75,96,56},{54,63,86,96}, {63,96,98,97}}; float sum,t; for(i=0;i<5;i++) { for(j=0;j<5;j++) printf("%12f",a[i][j]); printf("\n"); } for(i=0;i<5;i++) { sum=0; for(j=0;j<4;j+][4]=sum/4; }
习题6 有15个数按由大到小顺序存放在一个数组 中,输入一个数,要求用折半查找法找出该数 是数组中第几个元素的值。如果该数不在数组 中,则输出“无此数”。
#include<stdio.h> int main() { int a[15]={15,14,13,12,11,10,9,8,7,6,5,4,3,2,1}; int key,mid,star=0,end=15-1; printf("enter a look for number:\n"); scanf ("%d",&key); if(key>a[0]||key<a[end]) { printf("无此数\n");} else { while(star<=end) { mid = (star+end)/2; if(key==a[mid]) { printf("这个数在第%d\n",mid);break;} else if(key>a[mid]) {end=mid-1;} else {star=mid+1;} } if(star>end) { printf("无此数\n");} } }
for(k=0;k<4;k++) for(i=0;i<4-k;i++) if(a[i][4]<a[i+1][4]) for(j=0;j<5;j++) {t=a[i][j];a[i][j]=a[i+1][j];a[i+1][j]=t;} for(i=0;i<5;i++) { for(j=0;j<5;j++) printf("%12f",a[i][j]); printf("\n"); } }
相关主题