实验6数组参考答案Word格式.docx

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

实验6数组参考答案Word格式.docx

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

实验6数组参考答案Word格式.docx

if(l<

n&

&

n<

=10)

”输入数据并求累加和权

/車求出平均值权

/审求最大、最小值的下标权

printf("

Input%dinteger:

for(i=0,sum=0;

i<

n;

i++){

scanf(w%dn,&

a[i]);

sum+=a[i];

}average=(float)sum/n;

for(i=0,max=0,min=0;

if(a[i]>

a[max])

max=i;

if(a[i]<

a[min])

min=i;

}printf(Bmax=%-5dindex=%d\nw>

a[max],max);

printf("

min=%-5dindex=%d\n"

・a[min],min);

average=%.2f\n"

average);

}

else

printfC数据超出围■);

4.编程:

青年歌手参加歌曲大奖赛,有10个评委对她(他)进行打分,试编程求这位选手的平均得分并

辙出(去掉一个最高分和一个最低分)。

#include<

voidmainO

inti,max,min;

floata[10],ave;

printf(B请输入10个评委的打分:

”);

for(i=0,ave=0;

10;

i++)/*输入分数并求累加和寧/scanfCXf"

&

ave+=a[i];

for(i=0,max=0,min=0;

i++)/*求最大、最小值的下标*/

辻(a[i]>

a[max])

max=i;

if(a[i]<

a[minj)

min=i;

ave=ave-a[max]-a[min];

ave=ave/8;

printf(”该选手的评委打分是:

for(i=0;

i++)

%.2f\a[i]);

printf(ff\nw);

printfC去掉最高分%.2ff去掉最低分%.2f,该选手的平均得分是%・2f\nJa[max],a[min],ave)

5.编程:

用两种方法输出斐波那切数列的前40项(参考例6-4)。

要求:

(1)方法1:

不使用数组;

★include<

intfl=lff2=ltf3ti;

printf(w%12d%12d\fl,f2);

for(i=3;

=40;

f3=fl+f2;

%12d\f3);

if(i%5=0)

printf(*\nw);

fl=f2;

f2=f3;

(2)方法2:

使用一维数组。

inti;

intfib[40];

fib[O]=fib[l]=l;

/*计算其余的38个数权

for(i=2;

40;

fib[i]=fib[i-l]+fib[i-2];

for(i=0;

printfC%12d\fib[i]);

if((i+l)%5==0)printfC\n"

);

6.编程:

输入n个(l<

=10)float型的数据并保存到数组中,用冒泡法或选择法将它们从大到小排序后

输出。

Input5number:

8.52.35.11.44.9

Aftersorted:

8.505.104.902.301.40

inti,j,n;

floata[10]tt;

printf(wInputn:

scanf("

%d"

&

辻(n>

l&

Input%dnumber:

n);

for(i=0;

i<

i++)

scanf

printf("

Beforesorted:

'

);

/*输出排序前的数据*/

printf(n%.2f\a[i]);

printf(B\n"

n-l;

i++)/*冒泡排序*/

for(j=0;

j<

n-i-l;

j++)

if(a[j]<

a[j+l])

t=a[j];

a[j]=a[j+l];

a[j+l]=t;

/*输出排序结果*/

printf(*%.2fa[i]);

printf(B\nw):

printfC数据超出围J;

7.在上题基础上(输入n个float型的数据并保存到数组中,用冒泡法或选择法将它们从大到小排序后输出)完成:

在已经排好序的数组(长度不足10)中插入一个数m(键盘输入)后输出,保持数组的降序排列。

程序分析:

首先判断此数長否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。

inti,j,ntp;

floata[10]tt,m;

printf(ffInputn:

scanf&

if(n>

i卄)

scanf(ff%f&

"

printfC%.2f"

a[i]);

\nw);

i++)/*冒泡排序*/

for(j=0;

a[j]=a[j+ll;

printf(ff%.2f"

printfC\n"

/*输出排序结果权

printfC请输入要插入的数据血•);

scanf("

%f\&

m);

/車如果in比最后一个元素小,则直接插入到最后的位置M

P=n;

i++)if(m>

a[i]){

P=i;

bre且k;

for(i=n;

i>

=p+l;

i—)a[i]=a[i-l];

}

/*否则.插入到中间的某个位置*/

/字将插入位置之后的元素后移韋/

/*插入权

a[p]=m;

printfC插入%・2fJff:

\m);

n+l;

i++)printf(n%.2f\a[i]);

printf(■\nw);

/*输出插入后结果柠

二.二维数组实验

1.以下程序功能为:

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

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

146

81012

源程序(有错误的程序)

 

^include<

#defineROW2

ttdefineCOL3

intmain()

inta[R0W][COL]={1,4,6.8.10,12};

intitj,temp;

R0W;

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

for(j=C0L-2;

j>

=0;

j—)

a[i][j]=a[i][j+1];

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

a[i][0]=temp;

/*调试时设置断点*/

for(inti二0;

ROW:

i++)//去掉int

j<

COL;

j++)

%6d"

a[i][j]);

printf('

An11);

return0;

运行结果(改正后程序的运行结果)

6

1

4

12

8

10

利用二维数组计算并打印一个n行的辉三角。

Input

n:

6

2

3

41

105

提示:

第一列及对角线上的元素都是1,其他元素通过计算得出:

如果用i表示行,j表示列,则第i行j列的元素]人身=几-1.尸]+Pij

inta[10][10]={0};

〃设最多10层

inti9j,n;

printf(w请输入辉三角形的层数:

w);

10)

printfC层数超出围"

return;

i++)//给笫0列和主对角线上的元素赋值1

a[i][0]=1;

a[i][i]=l;

for(i=2;

i++)〃计算其他位置元素的值

for(j=l;

i;

a[i][j]=a[i-l][j-l]+a[i-l][j];

i++)〃输出

for(j=0;

=i;

J++)

printf(”%4d・,a[i][j]);

\n"

通过键盘输入3行4列的二维数组,分别按行和按列输出数组。

Inputnumner:

1234

5678

910110

outputbyrow:

12345678910110

outputbycol:

15926103711480

voidmainO

inta[3][4],i,j;

请输入3X4整数矩阵八n"

3;

4;

j++)scanf(n%dw,&

a[i][j]);

printf(*按行输出:

・);

i++)for(j=0;

pr

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

当前位置:首页 > 自然科学 > 天文地理

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

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