实验六参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六:参考答案
1、用数组实现输入任意十个整数,用擂台赛法求其最大值和最小值。(C语言源程序文件名为61.c,程序运行结果文件名为61.txt)
【参考程序】
#include
void main()
{int i,max,min,a[10];
FILE *fp;
fp=fopen("e:\\6\\61.txt","w");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=min=a[0];
for(i=1;i<10;i++)
{if(a[i]>max) max=a[i];
if(a[i] fprintf(fp,"max=%d,min=%d\n",max,min); fclose(fp); } 4、有一数组中的数为67,45,43,35,32,30,28,25,24,10,要求用折半查找的方法找出数组中24所在的位置。(C语言源程序文件名为62.c,程序运行结果文件名为62.txt)【参考程序】 #include void main() {static int a[10]={67,45,43,35,32,30,28,25,24,10}; int top,bot,mid,x; FILE *fp;clrscr(); fp=fopen("e:\\6\\62.txt","w"); top=0;bot=9; mid=(top+bot)/2; else bot=mid-1; mid=(top+bot)/2; } if(x==a[mid]) fprintf(fp,"%d,%d\n",a[mid],mid); else fprintf(fp,"can not be found\n"); fclose(fp); } 3、有一数组中的数为56,23,-5,4,120,333,21,-40,2,10,要求编程实现数组中 的数据实现前半段和后半段平移,即数组中的数变为333,21,-40,2,10,56,23,-5,4,120。(要求将原数组和平移后的数组输出到文件中)(C 语言源程序文件名为63.c ,程序运行结果文件名为63.txt ) 【参考程序】 #define N 10 #include main() {static int a[N]={56,23,-5,4,120,333,21,-40,2,10},i,t; FILE *fp;clrscr(); fp=fopen("e:\\6\\63.txt","w"); for(i=0;i fprintf(fp,"\n"); for(i=0;i {t=a[i];a[i]= for(i=0;i fprintf(fp,"%d ",a[i]); fprintf(fp,"\n"); fclose(fp); } 4、输入若干有序数(要求降序,比如67,45,43,35,32,28,25,24,10)放在数组中。然后输入一个数(比如30),插入到此有序数列中,插入后,数组中的数仍然有序。要求将原数组和插入后的数组输出到文件中)(C 语言源程序文件名为64.c ,程序运行结果文件名为64.txt ) 【参考程序】 #include main() {int a[10]={67,45,43,35,32,28,25,24,10}; int i,x,p,n; FILE *fp; scanf("%d",&x); p=0,n=8; for(i=0;i<=n;i++)