下载此文档

西农C语言第三次实习作业.doc


文档分类:IT计算机 | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
FH05-#include<>voidmain(){ inta[10],i; a[1]=1; for(i=2;i<11;i++) a[i]=a[i-1]+1; for(i=1;i<11;i++) { printf("%5d",a[i]); if(i%2==0)printf("\n"); }}⑴在模仿生兔子程序编此程序时候发现多次错误,而且都关于遍历输出的错误,首先是没把控制输出语句用于遍历输出导致输出数据错误,再次是判断换行的控制输出没有放在遍历输出当中,导致输出时候不能根据预想结果一样的输出,所以当遍历输出时需要将全部与控制有关的输出控制语句全部放在遍历输出的花括弧中。⑵在第一次i的循环赋值当中计算式中i的初值要比起始定义时候要大1以免输出时候造成结果紊乱。⑶运行程序结果与预想完全相同输出,但是不理解的是为什么会出现程序运行错误终止提示呢?而且我重新建立VC工作区域也出现了同样的结果。比较交换法:#defineJH(a,b)t=a,a=b,b=tvoidmain(){ inta[11],i,j,t; printf("交换前的数据:"); for(i=1;i<11;i++) { a[i]=rand()%100; printf("%5d",a[i]); } printf("\n交换后的顺序:"); for(i=1;i<10;i++) for(j=i+1;j<11;j++) if(a[i]<a[j])JH(a[i],a[j]); for(i=1;i<11;i++) printf("%5d",a[i]); printf("\n");}此程序我编制了好几次,花了大量时间研究交换的内外循环,可是老是出现最终各数字位置未能交换,对此,很费解。参照老师您所写的程序与自己所写程序并无差别,可就是结果运行不正确,调试多次后,发现在书写for(i=1;i<10;i++) for(j=i+1;j<11;j++)这两个程序段时,第二行的就j的赋值必须写成j=i+1,而不能写成就j=2。这之间的变化就是数值最终是否能交换的原因。刚开始我的理解是外循环for(i=1;i<10;i++)只需要循环(比较)9次,内循环for(j=2;j<11;j++)从第二项开始也循环(比较)9次。且每次循环I,J都会增加1,所以比较应该能完成才对的。而调试后的程序,j=i+1处的格式,我对其意思就相对模糊了。难道内循环j的值的变化必须与i有关,若无i则j的值就不会变化吗?5、选择法排序#include<>#defineJH(x,y)t=x,x=y,y=tvoidmain(){ inta[10],t,i,j,k; printf("before:"); for(i=0;i<10;i++) { a[i]=rand()%100; printf("%5d",a[i]); } printf("\nafter:"); for(i=0;i<9;i++) { k=i; for(j=i+1;j<10;j++) if(a[k]<a[j])k=j; JH(a[i],a[k]); } for(i=0;i<10;i++) printf("%5d",a[i]); printf("\n");}在阅读后选择法排序后,根据自己的理解独立编写程序,写出的程序中有几处不同,⑴if(a[i]<a[j]

西农C语言第三次实习作业 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数4
  • 收藏数0 收藏
  • 顶次数0
  • 上传人cjc201601
  • 文件大小34 KB
  • 时间2020-08-10