最新实验6数组参考答案.docx

上传人:b****2 文档编号:1082552 上传时间:2022-10-16 格式:DOCX 页数:23 大小:23.66KB
下载 相关 举报
最新实验6数组参考答案.docx_第1页
第1页 / 共23页
最新实验6数组参考答案.docx_第2页
第2页 / 共23页
最新实验6数组参考答案.docx_第3页
第3页 / 共23页
最新实验6数组参考答案.docx_第4页
第4页 / 共23页
最新实验6数组参考答案.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

最新实验6数组参考答案.docx

《最新实验6数组参考答案.docx》由会员分享,可在线阅读,更多相关《最新实验6数组参考答案.docx(23页珍藏版)》请在冰豆网上搜索。

最新实验6数组参考答案.docx

最新实验6数组参考答案

实验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:

");/*输出排序结果*/

for(i=0;i

printf("%.2f",a[i]);

printf("\n");

printf("请输入要插入的数据m:

");

scanf("%f",&m);

/*找到插入位置*/

if(m

p=n;

else

{

for(i=0;i

if(m>a[i])

{

p=i;

break;

}

for(i=n;i>=p+1;i--)/*将插入位置之后的元素后移*/

a[i]=a[i-1];

}

/*插入*/

a[p]=m;

printf("插入%.2f后:

",m);/*输出插入后结果*/

for(i=0;i

printf("%.2f",a[i]);

printf("\n");

}

else

printf("数据超出范围");

}

二、二维数组实验

1.以下程序功能为:

将下列矩阵中的元素向右移动一列,最后一列移至第一列。

找出并改正以下源程序中错误,通过调试得出正确的运行结果。

146

81012

源程序(有错误的程序)

#include

#defineROW2

#defineCOL3

intmain()

{

inta[ROW][COL]={1,4,6,8,10,12};

inti,j,temp;

for(i=0;i

{

temp=a[i][COL-1];

for(j=COL-2;j>=0;j--)

{

a[i][j]=a[i][j+1];/*调试时设置断点*///改为a[i][j+1]=a[i][j];

}

a[i

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1