- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章数组类型习题及解析
8-1 编写程序,将10个数34,3,29,63,70,16,85,82,90,93存放于一组数组中,求出这十个数的和及平均值。
解: #include stdio.h
void main()
{
int a[10]={34,3,29,63,70,16,85.82,90,93};
int i ,sum=0;
float average ;
for(i=0;i10;i++)
{
sum=sum+a[i] ;
}
average=sum/10.0;
printf(sum=%d,average=%f\n,sum,average);
}
运行结果:sum=565,average=56.5000
思考:数组有何特点?此问题如果不用数组进行处理将会怎样?
8-2 编写程序,求存放于上题数组中10个数的最大值,最小值及所在的位置。
解:#include stdio.h
void main()
{
int a[10]={34,3,29,63,70,16,85,82,90,93};
int i,sum,max,min,d_max,d_min;
max=min=a[0];
d_max=d_min=0;
for(i=1;i10;i++)
{
if(a[i]max) {max=a[i];d_max=i;}
if(a[i]min) {min=a[i];d_min=i;}
}
printf(max=%d,a[%d]\n,max,d_max);
printf(min=%d,a[%d]\n,min,d_min);
}
运行结果:max=93,a[9]
Min=3,a[1]
思考:数组a[i]中i的变化意味着什么?
8-3 编写程序,从键盘读入50个数存放于一数组中,求出该数组中最大值、最小值及所在位置。
解:#include stdio.h
void main()
{
float a[50],max,min;
int i,d_max,d_min;
for(i=0;i50;i++)
scanf(%f,a[i]);
max=min=a[0];
d_max=d_min=0;
for(i=1;i50;i++)
{
if(a[i]max) {max=a[i];d_max=i;}
if(a[i]min) {min=a[i];d_min=i;}
}
printf(max=%d,a[%d]\n,max,d_max);
printf(min=%d,a[%d]\n,min,d_min);
}
思考:此题中不用数组也可以处理吗?如果可以,区别之处在哪里?
8-4将存放于上题数组中的50个数分别按升序,降序排序。
解:#include stdio.h
#define N 3
void main()
{
float a[N] ,t;
int i,j;
for(i=0;iN;i++)
scanf(%f,a[i]);
/*按升序排序*/
for(i=0;iN;i++)
{
for(j=i;jN;j++)
if(a[i]a[j]) {t=a[i];a[i]=a[j];a[j]=t;}
printf(%8.2f ,a[i]);
}
printf(\n);
/*按降序排序*/
for(i=0;iN;i++)
{
for(j=i;jN;j++)
if(a[i]a[j]) {t=a[i];a[i]=a[j];a[j]=t;}
printf(%8.2f ,a[i]);
}
printf(\n);
}
思考:此题中可以不用数组进行处理吗?(进一步理解数组的特点。)
8-5 编写程序,从键盘输入某班学生C语言课程考试成绩,评定每个学生C语言成绩等级。如果高于平均分10分,则等级为优秀;如果低于平均分10分,则等级为一般;否
文档评论(0)