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

Slides:



Advertisements
Similar presentations
第 8 章 数组 计算机科学学院 李淮 Tel QQ
Advertisements

《C语言程序设计》复习
§2 线性空间的定义与简单性质 主要内容 引例 线性空间的定义 线性空间的简单性质 目录 下页 返回 结束.
计算学科的基本问题 本章首先介绍一个对问题进行抽象的典型实例——哥尼斯堡七桥问题。然后,通过“梵天塔”问题和“停机问题”分别介绍学科中的可计算问题和不可计算问题。从“梵天塔”问题再引出算法复杂性中的难解性问题、P类问题和NP类问题,证比求易算法,P=NP是否成立的问题。
机器设备评估底稿(操作类) ( ) 王建军.
補充: Input from a text file
数据结构与算法 数据结构与算法实验
第九章 指针 目录 指针与指针变量的概念 变量的指针和指向变量的指针变量 数组的指针和指向数组的指针变量
C语言程序设计 第十二章 位运算.
第一章 程序设计入门.
C语言程序设计 第五章 选择结构程序设计.
第六章 数 组 主讲教师 贾月乐 联系电话:
C语言程序设计 课程 第5章 数组 主讲:李祥 博士、副教授 单位:软件学院软件工程系.
高级语言程序设计 主讲人:陈玉华.
C 程序设计实例 1. 问题描述 2. 数据结构 3. 算法分析 4. 参考程序 5. 改进说明.
循环结构又称为重复结构:用来处理需要重复处理的问题,它是程序中一种很重要的结构。
選擇排序法 通訊一甲 B 楊穎穆.
C的發展史 C程式初體驗 C程式設計基本注意事項 上機實習課程
补充内容 结构体 概述 定义结构体类型和定义结构体变量 结构体变量的引用 结构体变量的初始化 指针与结构体 用typedef定义类型的别名.
Chap 10 函数与程序结构 10.1 函数的组织 10.2 递归函数 10.3 宏定义 10.4 编译预处理.
Introduction to the C Programming Language
Introduction to the C Programming Language
目录 第八章 数组 1 简单学生成绩管理系统的开发 2 一维数组 3 多维数组 4 字符数组 5 数组作函数参数.
STRUCTURE 授課:ANT 日期:2010/5/12.
QQ: 李祥 QQ: 欢迎多种方式的学习交流,祝大家学有所成.
计算概论 第十八讲 C语言高级编程 结构与习题课 北京大学信息学院.
Function.
C语言程序设计 李祥.
第八章 函数.
第2章 线性表 线性表抽象数据类型 顺序表 主要知识点 单链表 循环单链表 循环双向链表 静态链表 设计举例.
第5章 堆疊(Stacks) 5-1 堆疊的基礎 5-2 堆疊的表示法 5-3 堆疊的應用 - 運算式的計算與轉換
第7章 编译预处理 本章要求: 本章重点: 本章难点: 掌握用#define定义无参数宏和带有参数宏定义和调用方法;
第五章 指针 5.1 指针的概念和定义 5.2 指针运算 5.3 指针和数组 5.4 字符串指针 5.5 指针数组 5.6 指向指针的指针
6.4.1指针与二维数组 1、二维数组结构的分析 设有数组定义为:int a[3][4]; 则有: a表示数组在内存中的首地址。
算法的基本概念.
C语言 程序设计基础与试验 刘新国、2012年秋.
第13章 结构体的应用 13.1 了解由用户构造的数据类型 13.2 结构体类型说明及结构体变量 13.3 结构体数组
第十章 指针.
第5讲 结构化程序设计(Part II) 周水庚 2018年10月11日.
第七章 函数及变量存贮类型 7.1 函数基础与C程序结构 7.2 函数的定义和声明 7.3 函数的调用 7.4 函数的嵌套与递归
第九章 预处理命令.
数组 梁春燕 华电信息管理教研室.
一、文件的基本概念 第十三章 文 件 所谓“文件”是指一组相关数据的有序集合。 这个数据集有一
目录 9.1 结构体类型 9.2 共用体类型 9.3 枚举类型 9.4 类型声明符typedef 1.
C语言概述 第一章.
資料結構與C++程式設計進階 排序與搜尋 講師:林業峻 CSIE, NTU 6/ 14, 2010.
C语言复习3----指针.
C语言大学实用教程 第6章 数组 西南财经大学经济信息工程学院 刘家芬
Main() { Dfas Asdfasf fasdfa } #include <stdio.h> void main( ) {
函数 概述 模块化程序设计 基本思想:将一个大的程序按功能分割成一些小模块, 特点: 开发方法: 自上向下,逐步分解,分而治之
C语言程序设计 教案 崔武子制作
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
7.1 C程序的结构 7.2 作用域和作用域规则 7.3 存储属性和生存期 7.4 变量的初始化
C程序设计.
C程序设计.
C++程式設計入門 變數與運算子 作者:黃建庭.
第二章 类型、对象、运算符和表达式.
实验七 数 组 第21讲 C程序设计 Main() { int x,y; X=10; y=x*x+1;
习 题 课(作业).
Introduction to the C Programming Language
程序设计基础.
第五章 逻辑运算和判断选取控制 §5.1 关系运算符和关系表达式
第七章  数 组.
人民教育出版社义务教育教科书物理(八年级下册)
第18讲 从C到C++ 计算机与通信工程学院.
C/C++基礎程式設計班 陣列 講師:林業峻 CSIE, NTU 3/14, 2015.
Chap 10 函数与程序结构 10.1 圆形体积计算器 10.2 汉诺塔问题 10.3 长度单位转换 10.4 大程序构成.
C语言基础学习 从外行到入门.
隨機函數.
Presentation transcript:

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

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

#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;

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

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

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]); 输出三行 输出一行后换行

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"); }

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

if(i==j) s1=s1+a[i][j]; if(i+j==4) s2=s2+a[i][j]; 行下标和列下标的值相等 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 if(i==j) s1=s1+a[i][j]; if(i+j==4) s2=s2+a[i][j]; 行下标和列下标的值相等 行下标与列下标的和为4

#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;

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

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);

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

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题

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

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]; }

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); }

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

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级

#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;

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个字符

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

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

#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;

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);

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