实验6-数组——参考答案

  • 格式:docx
  • 大小:75.20 KB
  • 文档页数:16

下载文档原格式

  / 16
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
fib[i]= fib[i-l] + fib[i-2];
for(i=0; i<40; i++)
{
printfC%12d\fib[i]); if((i+l)%5==0) printf C\n");
6.编程:输入n个(l<n<=10) float型的数据并保存到数组中,用冒泡法或选择法将它们从大到小排序后
scanf
printf ("Before sorted:') ;/*输出排序前的数据*/
for(i=0; i<n; i++)
printf (n%. 2f \ a[i]);
printf(B\n");
for(i=0; i<n-l; i++)/*冒泡排序*/
for (j=0; j<n-i-l; j++)
if( a[j] < a[j+l])
{
inti9n , max, min, a[10]tsum; float average;
printf(wInput n (l<n<=10):"); scanf (ff%dn, &n); if(l<n && n<=10)
{
printf("Input%dinteger:n); for(i=0, sum=0; i<n; i++) {
for(i=0, ave=0; i<10; i++)/*输入分数并求累加和寧/scanfCXf", &a[i]); ave+=a[i];
for(i=0, max=0 , min=0; i<10; i++)/*求最大、最小值的下标*/
{
辻(a[i]>a[max])
max=i;
if(a[i]<a[minj)
实验6数组
一.一维数组实验
2.编程:输入长度为10的整型数组并输出;然后将其逆序存放后再输出。例如:
3.编程:辙入n个(l<n<=10)正整数并保存到数组中,求出最大值.最小值、平均值,以及最大值、最 小值在数组中的下标分别是多少。例如:
ttinclude <stdio. h> void main()
min=i;
}
ave=ave-a[max]-a[min];
ave=ave/8;
printf(”该选手的评委打分是:");
for (i=0; i<10; i++)
printf("%.2f \ a[i]);
printf (ff\nw);
printf C去掉最高分%.2ff去掉最低分%.2f,该选手的平均得分是%・2f\nJ a [max], a [min], ave)
scanf(w%dn, &a[i]); sum+=a[i];
} average=(float)sum/n;
for(i=0, max=0, min=0; i<n; i++) {
if(a[i] > a[max])
max= i;
if(a[i] < a[min])
min= i;
} printf(Bmax=%-5d index=%d\nw>a[max], max); printf("min=%-5d index=%d\n"・ a[min], min); printf("average=%. 2f\n", average);
}
else
printfC数据超出围■);
4.编程:青年歌手参加歌曲大奖赛,有10个评委对她(他)进行打分,试编程求这位选手的平均得分并
辙出(去掉一个最高分和一个最低分)。
#include <stdio. h>
void mainO
{
int i, max, min;
float a[10], ave;
printf (B请输入10个评委的打分:”);
5.编程:用两种方法输出斐波那切数列的前40项(参考例6-4ຫໍສະໝຸດ Baidu。 要求:(1)方法1:不使用数组;
★include <stdio. h>
void mainO
{
int fl=lff2=ltf3ti;
printf(w%12d%12d\ fl, f2);
for (i=3; i<=40; i++)
{
f3=fl+f2;
for(i=0; i<n-l; i++)/*冒泡排序*/
for(j=0; j<n-i-l; j++)
if( a[j] < a[j+l])
t=a[j]; a[j]=a[j+ll; a[j+l]=t;
{
t=a[j];
a[j]=a[j+l]; a[j+l]=t;
}
printf ("After sorted:") ;/*输出排序结果*/
for(i=0; i<n; i++)
printf (*%. 2fa[i]);
printf(B\nw):
}
else
printfC数据超出围J;
7.在上题基础上(输入n个float型的数据并保存到数组中,用冒泡法或选择法将它们从大到小排序后输 出)完成:在已经排好序的数组(长度不足10)中插入一个数m(键盘输入)后输出,保持数组的降序排列。
输出。例如:
ttinclude <stdio. h>
void mainO
{
int i, j, n;
float a[10]tt;
printf(wInput n:");
scanf("%d",&n);
辻(n>l && n<=10)
{
printf("Input %d number:", n); for(i=0;i<n;i++)
printf("%12d\ f3);
if(i%5=0)
printf(*\nw);
fl= f2;
f2= f3;
}
}
(2)方法2:使用一维数组。
#include <stdio. h>
void mainO
{
int i;
int fib[40];
fib[O]=fib[l]=l;
for (i=2; i<40; i++)
{
printf("Input %d number:n);
for(i=0; i<n; i卄)
scanf (ff%f &a[i]);
printf ("Before sorted: ") ;/*输出排序前的数据*/
for(i=0; i<n; i卄)
printfC%. 2f ", a[i]);
printf ("\nw);
程序分析:首先判断此数長否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数, 依次后移一个位置。
#include <stdio. h>
void mainO
{
int i, j, ntp;
float a[10]tt, m;
printf(ffInput n:");
scanf&n);
if(n>l && n<=10)