实验项目一:数组
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言程序设计》实验报告
实验项目一:数组
2)将上述程序的第四行改成scanf(“%s”,&str);,重新运行上述程序,观察输出结果有什么不同,为什么?
重新运行的结果:
分析:
前者能输入字符串,而后者只能输入字符,相当于只输入了how
3)如果用%c格式输入输出字符串,程序应怎样修改?
根据用%c格式输入输出字符的特点,修改后的程序为:
#include
int main()
{int i;
char str[11]={'h','o','w','','a','r','e','','y','o','u'};
for(i=0;i<=10;i++)
printf("%c",str[i]);
printf("\n");
return0;
}
3.改错
有一个3×4的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号。
#include
#define M3
#define N4
int main()
{
int max,i,j,r,c;
r=0;c=0;
int a[M][N]={{323,94,-10,218},{3,9,10,-83},{45,16,44,-99}};
max=a[0][0];
for(i=0;i for(j=0;j if(a[i][j]>max) {max=a[i][j]; r=i; c=j;} printf("max=%d,行=%d,列=%d\n",max,r,c); return0; } 4.改错 下面是用来将数组a中元素按升序排序后输出的源程序。分析源程序中存在的问题,并对源程序进行修改,使之能争取完成任务。 #include int main() { int a[10]={27,13,5,32,23,3,17,43,55,39}; int i; int sort(int[],int); sort(a,10); for(i=0;i<10;i++) printf("%6d",a[i]); printf("\n"); return0; } int sort(int b[],int n) {int i,j,t; for(i=0;i for(j=0;j if(b[j] {t=b[j]; b[j]=b[j+1]; b[j+1]=t;} return0; } 5.编一个程序,输入10个整数,统计并输出其中正数、负数和零的个数。) #include int main() { int a[10],i,zheng,fu,ling; zheng=0;fu=0;ling=0; for(i=0;i<=9;i++)scanf("%d",&a[i]); for(i=0;i<=9;i++) {if(a[i]>0)zheng=zheng+1; if(a[i]<0)fu=fu+1; if(a[i]==0)ling=ling+1; } printf("正数的个数是%d\n",zheng); printf("负数的个数是%d\n",fu); printf("零的个数是%d\n",ling); return0; 6.应用数组求Fabonacci数列的前40项(该数列前两项为1,以后各项均为前相邻两项之和)要求以每行8个输出。 #include int main() { int f[40]={1,1},i; for(i=1;i<=38;i++) f[i+1]=f[i]+f[i-1]; for(i=0;i<=39;i++) {if((i+1)%8==0)printf("\n"); printf("%9ld",f[i]);} return0; } 7.用冒泡法对20个整数排序。20个整数需要键盘键入。 #include int main() { int a[20],i,j,t; for(i=0;i<=19;i++) scanf("%d",&a[i]); for(i=18;i>=0;i--) for(j=0;j<=i;j++)