大学生C语言程序设计(第四版 谭洪强)实验4 答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四参考答案
1、设计程序sy4-1.c,输入10个整数存入一个数组a,输入x,使数组a中各元素值都乘以x后输出。
算法分析:
用循环输入10个数,分别赋给a[0],a[1],------a[9],然后再输入x的值,重新给每个元素a[0],a[1],------,a[9]赋值为他们乘以x的值;最后结果输出。
参考答案:
#include
int main()
{ int a[10], x , i ;
printf("请输入10个整数:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("输出数组中原来的值:");
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n请给x输入值:");
scanf("%d",&x);
for(i=0;i<10;i++)
a[i]=a[i]*x;
printf("数组每个元素乘以x后的值为:");
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
运行结果:
2、设计程序sy4-2.c,对输入的10个整数按倒序存放后输出结果。
算法分析:
用“对折交换”的方法:首先输入10个数给每个元素;设置两个下标变量,i=0(第一个元素下标),j=9(最后一个元素下标);交换a[0],a[9],然后i++,j--,再交换a[1],a[8]的值,直到i>=j,结束;最后输出交换后数组的值。
参考答案:
#include
int main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10}, i, j , t ;
printf("输出交换前数组的值:");
for(i=0;i<10;i++)
printf("%3d",a[i]);
for(i=0, j=9 ; i { t=a[i]; a[i]=a[j]; a[j]=t; } printf("\n输出交换后数组的值:"); for(i=0;i<10;i++) printf("%3d",a[i]); printf("\n"); return 0; } 运行结果: 3、设计程序sy4-3.c,输入10个整数,找出其中的最大数及其所在的下标。 算法分析: 首先:把下标为0的数看成最大数,即max=a[0],k=0; 然后:逐一遍历a[0]后面的每个元素,如果当前元素值比max大,就改写max,并记录其下标。 最后:输出结果。 参考答案: #include int main() { int a[10]={12,21,35,10,54,31,24,58,43,11},i,k,max; //max存放最大值,k记最大值的下标printf("输出数组的每个元素:"); for(i=0;i<10;i++) printf("%3d",a[i]); max=a[0]; k=0; //首先把a[0]看成最大值,k记它的下标 for(i=1;i<10;i++)//逐一遍历其后的每个元素