实验 数组参考答案.docx
- 文档编号:7342581
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:21
- 大小:21.90KB
实验 数组参考答案.docx
《实验 数组参考答案.docx》由会员分享,可在线阅读,更多相关《实验 数组参考答案.docx(21页珍藏版)》请在冰豆网上搜索。
实验数组参考答案
实验6数组
一、一维数组实验
2、编程:
输入长度为10得整型数组并输出;然后将其逆序存放后再输出。
例如:
Input10number:
0123456789
Afterreversed:
9876543210
#include
voidmain()
{
inti,j,a[10],t;
printf("Input10number:
");
for(i=0;i<10;i++)/*读入数据*/
scanf("%d",&a[i]);
printf("origindata:
");
for(i=0;i<10;i++)/*输出原始数据*/
printf("%d",a[i]);
printf("\n");
for(i=0,j=9;i { t=a[i]; a[i]=a[j]; a[j]=t; } printf("Afterreversed: ");/*输出逆序存放后得数据*/ for(i=0;i<10;i++) printf("%d",a[i]); printf("\n"); } 3、编程: 输入n个(1 例如: Inputn: 5 Input5integer: 82514 max=8index=0 min=1index=3 average=4 #include voidmain() { inti,n,max,min,a[10],sum; floataverage; printf("Inputn(1 "); scanf("%d",&n); if(1 { printf("Input%dinteger: ",n);/*输入数据并求累加与*/ for(i=0,sum=0;i { scanf("%d",&a[i]); sum+=a[i]; } average=(float)sum/n;/*求出平均值*/ for(i=0,max=0,min=0;i { if(a[i]>a[max]) max=i; if(a[i] min=i; } printf("max=%-5dindex=%d\n",a[max],max); printf("min=%-5dindex=%d\n",a[min],min); printf("average=%、2f\n",average); } else printf("数据超出范围"); } 4、编程: 青年歌手参加歌曲大奖赛,有10个评委对她(她)进行打分,试编程求这位选手得平均得分并输出(去掉一个最高分与一个最低分)。 #include voidmain() { inti,max,min; floata[10],ave; printf("请输入10个评委得打分: "); for(i=0,ave=0;i<10;i++)/*输入分数并求累加与*/ { scanf("%f",&a[i]); ave+=a[i]; } for(i=0,max=0,min=0;i<10;i++)/*求最大、最小值得下标*/ { if(a[i]>a[max]) max=i; if(a[i] min=i; } ave=ave-a[max]-a[min]; ave=ave/8; printf("该选手得评委打分就是: "); for(i=0;i<10;i++) printf("%、2f",a[i]); printf("\n"); printf("去掉最高分%、2f,去掉最低分%、2f,该选手得平均得分就是%、2f\n",a[max],a[min],ave); } 5、编程: 用两种方法输出斐波那切数列得前40项(参考例6-4)。 要求: (1)方法1: 不使用数组; #include voidmain() { intf1=1,f2=1,f3,i; printf("%12d%12d",f1,f2); for(i=3;i<=40;i++) { f3=f1+f2; printf("%12d",f3); if(i%5==0) printf("\n"); f1=f2; f2=f3; } } (2)方法2: 使用一维数组。 #include voidmain() { inti; intfib[40]; fib[0]=fib[1]=1; for(i=2;i<40;i++)/*计算其余得38个数*/ fib[i]=fib[i-1]+fib[i-2]; for(i=0;i<40;i++) { printf("%12d",fib[i]); if((i+1)%5==0) printf("\n"); } } 6、编程: 输入n个(1 例如: Inputn: 5 Input5number: 8、52、35、11、44、9 Aftersorted: 8、505、104、902、301、40 #include voidmain() { inti,j,n; floata[10],t; printf("Inputn: "); scanf("%d",&n); if(n>1&&n<=10) { printf("Input%dnumber: ",n); for(i=0;i scanf("%f",&a[i]); printf("Beforesorted: ");/*输出排序前得数据*/ for(i=0;i printf("%、2f",a[i]); printf("\n"); for(i=0;i for(j=0;j if(a[j] { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } printf("Aftersorted: ");/*输出排序结果*/ for(i=0;i printf("%、2f",a[i]); printf("\n"); } else printf("数据超出范围"); } 7、在上题基础上(输入n个float型得数据并保存到数组中,用冒泡法或选择法将它们从大到小排序后输出)完成: 在已经排好序得数组(长度不足10)中插入一个数m(键盘输入)后输出,保持数组得降序排列。 程序分析: 首先判断此数就是否大于最后一个数,然后再考虑插入中间得数得情况,插入后此元素之后得数,依次后移一个位置。 #include voidmain() { inti,j,n,p; floata[10],t,m; printf("Inputn: "); scanf("%d",&n); if(n>1&&n<=10) { printf("Input%dnumber: ",n); for(i=0;i scanf("%f",&a[i]); printf("Beforesorted: ");/*输出排序前得数据*/ for(i=0;i printf("%、2f",a[i]); printf("\n"); for(i=0;i for(j=0;j if(a[j] { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } printf("Aftersorted: ");/*输出排序结果*/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 数组参考答案 数组 参考答案