实训03:数组.docVIP

  • 5
  • 0
  • 约2.05千字
  • 约 5页
  • 2018-05-16 发布于河南
  • 举报
实训03:数组

实训03 数组 区队:        姓名:        学号: (请将此文件名改为“学号_姓名03.doc”,上传到文件服务器54:36) 实训目的 掌握一维数组和二维数组的定义、赋值和输入输出的方法; 掌握与数组有关的算法。 实训内容 编程求出10个实数中的最大值、最小值和平均值。 (1)程序: #includestdio.h void main() { double a[10],Ave=0,Max,Min; printf(请输入十个实数(用空格分开):\n); for(int i=0;i10;i++) scanf(%lf,a+i); for(i=0;i10;i++) printf(a[%d]=%g\t,i,a[i]); printf(\n); Max=a[0];Min=a[0]; for(i=0;i10;i++) { Ave+=a[i]; if(Maxa[i])Max=a[i]; if(Mina[i])Min=a[i]; } Ave=Ave/10; printf(Ave=%g\nMax=%g\nMin=%g\n,Ave,Max,Min); } (2)程序调试过程中发现的问题及解决办法: 输入数据时用“,”分开时数据不对,采用空格后得到正确数据;在scan语句中的“%”和“f”中间要加上“l”,来表示是输入到双精度的变量里。 (3)程序运行结果: 输入: 输出: 编程计算一个字符串中字母b(不区分大小写)的个数。 (1)程序: #includestdio.h void main() { char a[256]={sdfgdggfdhtrzbvnBv}; int i=0,total=0; while(a[i]!=\0) { if(a[i]==b||a[i]==B) total++; i++; } printf(total=%d\n,total); } (2)程序调试过程中发现的问题及解决办法: If(a[i]==’b’)中的等号是双等号,当取单等号时total是字符串中符号的个数。 (3)程序运行结果: 输入: 输出: 编程求出如下二维数组中所有数据的平均值。 324 547 218 289 121 243 109 632 214 108 166 368 (1)程序: #includestdio.h void main() { int a[3][4]={{324,547,218,289},{121,243,109,632},{214,108,166,368}}; int i,j,total=0; double ave; for(i=0;i3;i++) for(j=0;j4;j++) total+=a[i][j]; ave=total/12.0; printf(Ave=%g\n,ave); } (2)程序调试过程中发现的问题及解决办法: I对应的是行,j对应的是列,不能搞错。 (3)程序运行结果: 输入: 输出: 附加题:计算数组a主、副对角线之和。数组a设为: 1 3 5 7 9 2 4 6 8 0 1 2 4 5 7 3 7 6 4 7 4 5 6 7 9 (1)程序: #include stdio.h #define N 5 /* N 数组的行、列数,不同的数组可修改此值*/ void main() { int a[N][N]={1,3,5,7,9, 2,4,6,8,0, 1,2,4,5,7, 3,7,6,4,7, 4,5,6,7,9}; int sum=0,i; for(i=0;iN;i++) sum=sum+a[i][i]+a[i][N-i-1]; if(N/2!=N/2.0) /*运算符 != 为不相等*/ sum=sum-a[N/2][N/2]; /*如果数组的维数是奇数,则数组中心的数 被加了两次,故减去。*/ printf(数组对角线之和为:%d\n,sum); } (2)程序调试过程中发现的问题及解决办法: 奇数数组的中心数既在主对角组上又在副对角组上,在最后的结果中需减去一个中心数。 计算对角线上的数可用一个循环完成,下本的计算要仔细,特别的数组中副对角线的列标为:N-i-1 。 (3)程序运行结果:

文档评论(0)

1亿VIP精品文档

相关文档