实验6数组——参考答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验6 数组

一、一维数组实验

2. 编程:输入长度为10的整型数组并输出;然后将其逆序存放后再输出。例如:

0 1 2 3 4 5 6 7 8 9

#include<>

void main()

{

int i, j, a[10], t;

printf("Input 10 number: ");

for(i=0; i<10; i++) /*读入数据*/

scanf("%d", &a[i]);

printf("origin data: ");

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("After reversed: "); /*输出逆序存放后的数据*/

for(i=0; i<10; i++)

printf("%d ", a[i]);

printf("\n");

}

3. 编程:输入n个(1

5

#include <>

void main()

{

int i, n , max, min, a[10], sum;

float average;

printf("Input n (1

scanf("%d", &n);

if(1

{

printf("Input %d integer:", 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] < a[min])

min= i;

}

printf("max=%-5d index=%d\n", a[max], max);

printf("min=%-5d index=%d\n", a[min], min);

printf("average=%.2f\n", average);

}

else

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

}

4. 编程:青年歌手参加歌曲大奖赛,有10个评委对她(他)进行打分,试编程求这位选手的平均得分并输出(去掉一个最高分和一个最低分)。

#include <>

void main()

{

int i, max, min;

float a[10], ave;

printf("请输入10个评委的打分:");

for(i=0, ave=0; i<10; 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 <>

void main()

{

int f1=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 <>

{

int i;

int fib[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

5

#include <>

void main()

{

int i, j, n;

float a[10], t;

printf("Input n: ");

scanf("%d",&n);

if(n>1 && n<=10)

{

printf("Input %d number:", n);

for(i=0;i

scanf("%f",&a[i]);

printf("Before sorted:"); /*输出排序前的数据*/

for(i=0; i

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

printf("\n");

for(i=0; i

for(j=0; j

if( a[j] < a[j+1] )

相关文档
最新文档