Presentation is loading. Please wait.

Presentation is loading. Please wait.

4.3 使用二维数组 P 求两个矩阵的和 求方阵对角线上元素之和 显示算术题和学生答题信息

Similar presentations


Presentation on theme: "4.3 使用二维数组 P 求两个矩阵的和 求方阵对角线上元素之和 显示算术题和学生答题信息"— Presentation transcript:

1 4.3 使用二维数组 P91 4.3.1 求两个矩阵的和 4.3.2 求方阵对角线上元素之和 4.3.3 显示算术题和学生答题信息
4.3.4 编写不同级别的打字练习程序 4.3.5 统计一个学习小组的成绩 返回

2 4.3.1 求两个矩阵的和 P91 【实例4.6】编写程序,计算两个35矩阵的和。 编程思路 定义3个二维数组a、b、c。
对2个矩阵的所有对应元素求和即可得到该2个矩阵之和。

3 #include <stdio.h>
main() { int a[3][4]={{3,8,12,15}, {2,6,15,13},{5,7,10,16}}; int b[3][4]={{6,10,17,15}, {5,12,19,20},{7,16,21,16}}; int c[3][4]={0},i=0,j=0;

4 a[0][0] a[1][0] a[2][0] a[0][1] a[0][2] a[0][3] a ? a[1][2]

5 a[0][0] a[1][0] a[2][0] a[0][1] a[0][2] a[0][3] a ? a[2][1]

6 printf("Array a:\n"); for(i=0; i<3; i++) { for(j=0; j<4; j++)
printf("%4d",a[i][j]); printf("\n"); } printf("Array b:\n"); printf("%4d",b[i][j]); 输出三行 输出一行后换行

7 for(i=0; i<3; i++) for(j=0; j<4; j++) c[i][j]=a[i][j]+b[i][j]; printf("Array c:\n"); { for(j=0; j<4; j++) printf("%4d",c[i][j]); printf("\n"); }

8 4.3.2 求方阵对角线上元素之和 P93 【实例4.7】编写程序,分别计算55方阵的主对角线上的元素之和与副对角线上的元素之和。

9 if(i==j) s1=s1+a[i][j]; if(i+j==4) s2=s2+a[i][j]; 行下标和列下标的值相等
if(i==j) s1=s1+a[i][j]; if(i+j==4) s2=s2+a[i][j]; 行下标和列下标的值相等 行下标与列下标的和为4

10 #include <stdio.h>
main() { int a[5][5]={{3,18,21,25,28}, {2,61,52,23,35}, {25,17,81,56,63}, {26,60,53,31,65}, {45,37,21,56,63}}; int i=0,j=0,s1=0,s2=0;

11 printf("Array a:\n"); for(i=0; i<5; i++) { for(j=0; j<5; j++) printf("%4d",a[i][j]); printf("\n"); }

12 for(i=0; i<5; i++) for(j=0; j<5; j++) { if(i==j) s1=s1+a[i][j]; if(i+j==4) s2=s2+a[i][j]; } printf("s1=%d,s2=%d\n",s1,s2);

13 4.3.3 显示算术题和学生答题信息 P94 【实例4.8】编写程序,给小学生出4道100以内2个数的加法题,每道题分数为25,最后将题目与学生的答题结果、正确答案、实际得分显示在屏幕上。

14 a[0][0] a[1][0] a[2][0] a[0][1] a[0][2] a[0][3] a a[0][4] a[0][5] a[3][0] 加数1 加数2 学生 答案 正确 是否 本题 得分 第1题 第2题 第3题 第4题

15 #include <stdio.h>
#include <stdlib.h> #include <time.h> #define N 4 main() { int i=0,total=0; int a[N][6]={0};

16 for(i=0; i<N; i++) { a[i][0]=random(100); a[i][1]=random(100); printf("%d+%d=",a[i][0],a[i][1]); scanf("%d",&a[i][2]); a[i][3]=a[i][0]+a[i][1]; if(a[i][3]==a[i][2]) { a[i][4]=1; a[i][5]=25; } else { a[i][4]=0; a[i][5]=0; } total=total+a[i][5]; }

17 for(i=0; i<N; i++) printf("%2d+%2d=%3d%5d
%5d%5d\n",a[i][0],a[i][1], a[i][2],a[i][3],a[i][4], a[i][5]); printf("The score is:%d\n",total); }

18 P96 4.3.4 编写不同级别的打字练习程序 【实例4.9】假设有3个级别的文字,其中初级由一串小写字母构成,中级由一串大小写字母构成,高级由英文字母和其他字符组成。编写程序,选择1个级别的文字练习打字,要求显示准确率。按回车键可随时停止练习,这时总字数是实际输入的字符数。

19 a p r o g r a m m i n 1级 H e w e n t t o 2级 W h a t s 2 a 3级

20 #include <stdio.h>
#define N 3 main() { char a[N][80]={"programming", "He went to Beijing", "What's 2 and 3?"}; char ch='\0'; int i=0,j=0,right=0;

21 printf("Pleese select from 0 to 2:");
scanf("%d",&i); puts(a[i]); ch=getch(); while(ch!='\r') { putchar(ch); if(a[i][j]==ch) right++; j++; } printf("\nThe correct rate is: %f\n",(float)right/j*100); 选择1个级别 显示所选级别的文字 从键盘输入1个字符

22 P97 4.3.5 统计一个学习小组的成绩 【实例4.10】假设一个学习小组由5名学生组成,每个组员有数学、英语和物理课的考试成绩。编写程序,求学习小组各科的平均成绩和总平均成绩。

23 姓名 数学  英语  物理 张   80   75  92 王   61   65  71 李   59   63  70 赵   85   87  90 周   76   77  85 均值 v

24 #include <stdio.h>
main() { int i=0,j=0,s=0,a[5][3]={0}; float v[3]={0.0},ave=0.0; printf("Input score:\n"); for(i=0; i<3; i++) { for(j=0; j<5; j++) { scanf("%d",&a[j][i]); s=s+a[j][i]; } v[i]=s/5.0; s=0; ave=(v[0]+v[1]+v[2])/3;

25 printf("The score:\n Math
English Physics\n"); for(i=0; i<5; i++) { for(j=0; j<3; j++) printf("%15d",a[i][j]); printf("\n"); } printf("The average:\n"); printf("Math:%.1f English:%.1f Physics:%.1f\n",v[0],v[1],v[2]); printf("Total:%.1f\n",ave);

26 贯穿教学全过程的实例 P99 根据教材第99~105页上机操作 返回


Download ppt "4.3 使用二维数组 P 求两个矩阵的和 求方阵对角线上元素之和 显示算术题和学生答题信息"

Similar presentations


Ads by Google