C语言程序设计第十一讲课件_第1页
C语言程序设计第十一讲课件_第2页
C语言程序设计第十一讲课件_第3页
C语言程序设计第十一讲课件_第4页
C语言程序设计第十一讲课件_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 输入输入x n=0 count+ for i=0 to n-1 ai%10!=0 T 输出输出ai F x0 an=x count=0 n+ 输入输入x #include void main() int a100, x, n, i, count; n=0; count=0; cinx; while(x0) an=x; n+; cinx; for(i=0; in; i+) if(ai%10!=0) coutai ; count+; cout个数是:个数是:n;cinn; for(i=0; in; i+) for(i=0; iai;cinai; m=0;m=0; for(i=0; in; i+)

2、for(i=0; in; i+) if(ai%5if(ai%5=0)0) bm=ai;bm=ai; m+;m+; for(i=0; im; i+)for(i=0; im; i+) coutbi ;coutbi ; 输入输入n m=0 m+ for i=0 to n-1 ai%5=0 T bm=ai F for i=0 to n-1 输入输入ai for i=0 to m-1 输出输出bi #include #include void main()void main() int a100, i, n, x, low, high, mid;int a100, i, n, x, low, high,

3、 mid; cinn;cinn; for(i=0; in; i+)for(i=0; iai;cinai; cinx;cinx; low=0;low=0;high=n-1;high=n-1; while(while(low=highlow=high) ) mid=(low+high)/2;mid=(low+high)/2; if(x=amid)if(x=amid)break;break; else if(xamid)else if(xamid)high=mid-1;high=mid-1; elseelselow=mid+1;low=mid+1; if(if(x=amidx=amid) ) cou

4、tYES:mid;coutYES:mid; elseelse coutNO;coutNO; #include #include void main( )void main( ) int i, j, temp, n, a100; int i, j, temp, n, a100; cinn;cinn; for(i=0; in; i+) for(i=0; iai; cinai; for(i=0; in-1; i+)for(i=0; in-1; i+) for(j=i+1; jn; j+) for(j=i+1; jaj) if(aiaj) temp=ai; temp=ai; ai=aj; ai=aj;

5、 aj=temp; aj=temp; for(i=0; in; i+)for(i=0; in; i+) coutai ;coutai ; 例:将任意例:将任意n个数由小到大排序。个数由小到大排序。 #include #include void main( )void main( ) int i, j, n, temp, int i, j, n, temp, didi, a100; , a100; cinn;cinn; for(i=0; in; i+) for(i=0; iai; cinai; for(i=0; in-1; i+)for(i=0; in-1; i+) di=i;di=i; for

6、(j=i+1; jn; j+) for(j=i+1; jaj) if(adiaj) di=j; di=j; if(i!=di) if(i!=di) temp=ai; temp=ai; ai=adi; ai=adi; adi=temp; adi=temp; for(i=0; in; i+)for(i=0; in; i+) coutai ;coutai ; 选择排序法选择排序法 相邻两数比较,大数相邻两数比较,大数 小数小数 11C语言程序设计第十一讲 a1 a2 a3 a4 a5 j=1 to 4 j=1 to 3 j=1 to 2 j=1 to 1 由小到大排序由小到大排序 #include

7、#include void main( )void main( ) int a100, n, i, j, temp; int a100, n, i, j, temp; scanf(%d, scanf(%d, for(i=1; i=n; i+) for(i=1; i=n; i+) scanf(%d, scanf(%d, for(i=1; in; i+) for(i=1; in; i+) for(j=1; j=n-i; j+)for(j=1; jaj+1) if(ajaj+1) temp=aj;temp=aj; aj=aj+1;aj=aj+1; aj+1=temp;aj+1=temp; for(i

8、=1; i=n; i+) for(i=1; i=n; i+) printf(%5d, ai); printf(%5d, ai); 类型名类型名 数组名数组名常量常量1 常量常量2; 例如:例如: int a34; 整型二维数组整型二维数组 名字为名字为a a00 数组数组a 共共12个元素个元素 01 2 3 0 1 2 3 是一个矩阵或一张表格是一个矩阵或一张表格 第第0行行 第第1行行 第第2行行 第第0列列 第第1列列 第第2列列 第第3列列 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23 0 1 2 3 一维数组个数一维数组个数 一维数组中一维数

9、组中 元素的个数元素的个数 例例 例例 1 2 3 4 5 6 7 8 9 10 11 12 例例1:将一个:将一个34矩阵输入到数组中并按行输出。矩阵输入到数组中并按行输出。 #include stdio.h#include stdio.h void main( )void main( ) int a34, i, j; int a34, i, j; for( i=0; i3; i+) for( i=0; i3; i+) for( j=0; j4; j+) for( j=0; j4; j+) scanf(%d, scanf(%d, aij); for( i=0; i3; i+) for( i=

10、0; i3; i+) for( j=0; j4; j+) for( j=0; j4; j+) printf(%3d, aij); printf(%3d, aij); printf(n); printf(n); 例例2:写结果。:写结果。 #include #include void main( )void main( ) int i, x33=6,5, 4,3, 2,1;int i, x33=6,5, 4,3, 2,1; for(i=0; i3; i+)for(i=0; i3; i+) printf(%d, xi2-i);printf(%d, xi2-i); 032 例例3: 程序功能是求二维

11、数组每列元素的平均值,修改程序程序功能是求二维数组每列元素的平均值,修改程序 中的错误。中的错误。 #include iostream.h#include iostream.h #define M 3;#define M 3; void main( )void main( ) int aMM=1,2,3,4,5,6,7 int aMM=1,2,3,4,5,6,7 int i, j; int i, j; for(i=0; iM; i+) for(i=0; iM; i+) for(j=0; jM; j+) for(j=0; jM; j+) avei=avei+aij; avei=avei+aij;

12、 avei=avei/M; avei=avei/M; for(j=0; jM; j+) for(j=0; jM; j+) cout avej; cout avej; #include iostream.h#include iostream.h #define M 3#define M 3 void main( )void main( ) int aMM=1,2,3,4,5,6,7 int aMM=1,2,3,4,5,6,7; ; int i, j; int i, j; float aveM ; float aveM ; for(i=0; iM; i+) for(i=0; iM; i+) for

13、(j=0; jM; j+) for(j=0; jM; j+) avei=avei+a avei=avei+aj j i i; ; avei=avei/M; avei=avei/M; for(j=0; jM; j+) for(j=0; jM; j+) cout avej;cout avej; =0=0 #include #include void main( )void main( ) int a5050, m, n, i, j, row, column, max; int a5050, m, n, i, j, row, column, max; cinmn; cinmn; for(i=0; i

14、m; i+) for(i=0; im; i+) for(j=0; jn;j+) for(j=0; jn;j+) scanf(%d, scanf(%d, max=a00; max=a00; for(i=0; im; i+)for(i=0; im; i+) for(j=0; jn; j+) for(j=0; jn; j+) if(maxaij)if(maxaij) max=aij; max=aij; row=i; row=i; column=j; column=j; printf(max=%d,row=%d,column=%d, max, row, column);printf(max=%d,ro

15、w=%d,column=%d, max, row, column); row=0; column=0;row=0; column=0; 例例5:将二维数组行列元素互换,存到另一个数组中:将二维数组行列元素互换,存到另一个数组中 #include #include #include #include void main( )void main( ) int a5050, b5050; int a5050, b5050; int m, n, i, j; int m, n, i, j; cinmn; cinmn; for(i=0; im; i+) for(i=0; im; i+) for(j=0;

16、jn; j+) for(j=0; jaij;cinaij; for(i=0; in; i+) for(i=0; in; i+) for(j=0; jm; j+) for(j=0; jm; j+) bij=aji;bij=aji; for(i=0; in; i+) for(i=0; in; i+) for(j=0; jm; j+) for(j=0; jm; j+) cout coutsetw(3)setw(3)bij;bij; coutendl; coutendl; v 矩阵的和运算矩阵的和运算 1 2 3 4 5 6 7 8 9 + 1 1 1 6 5 4 9 8 7 = 2 3 4 10 1

17、0 10 16 16 16 v 矩阵的积运算矩阵的积运算 1 2 3 4 5 6 7 8 9 3 2 1 6 5 4 9 8 7 = ? ? ? ? ? ? ? ? ? 1*3+ 2*6+3*9 v 矩阵的差运算矩阵的差运算 1 2 3 4 5 6 7 8 9 + 1 1 1 6 5 4 9 8 7 = 0 1 2 -2 0 2 -2 0 2 例例6:打印杨辉三角形。:打印杨辉三角形。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 #include #include #define M 30#define M 30 void main( )void main( ) int aMM

18、=0, i, j, n; int aMM=0, i, j, n; scanf(%d, scanf(%d, for(i=0; in; i+) for(i=0; in; i+) ai0=1; ai0=1;aii=1;aii=1; for(i=2; in; i+)for(i=2; in; i+) for(j=1; ji; j+) for(j=1; ji; j+) aij=ai-1j+ai-1j-1; aij=ai-1j+ai-1j-1; for(i=0; in; i+) for(i=0; in; i+) for(j=0; j=i; j+)for(j=0; j=i; j+) printf(%5d,ai

19、j); printf(%5d,aij); printf(n);printf(n); 0 1 2 3 4 0 1 2 3 4 看实验指导书看实验指导书P140 程序调试程序调试运行错误的判断与调试运行错误的判断与调试 1、编写程序,从矩阵中找、编写程序,从矩阵中找“鞍点鞍点”。如果某个元素是。如果某个元素是“鞍鞍 点点”,那么该元素在所处的行中最大,列上最小,也可能没有,那么该元素在所处的行中最大,列上最小,也可能没有 鞍点。要求:如果有鞍点,输出鞍点的值,以及其所处的行和鞍点。要求:如果有鞍点,输出鞍点的值,以及其所处的行和 列下标,否则输出列下标,否则输出NO。输入分。输入分m+1行:第一行为行:第一行为m和和n的值,的值, 以下以下m行代表二维数组,其中每一行包括行代表二维数组,其中每一行包括n个数。个数。 样例输入:样例输入: 3 4 1 2 4 3 5 6 7 8 6 8 9 4 样例输出:样例输出:4 0 2 样例输入:样例输入: 3 4 1 2 3 4 5 6 7 0 8 7 6 5 样例输出:样例输出:NO 2、编写程序,计算两个矩阵(均为、编写程序,计算两个矩阵(均为2行行2列)之积。输入分列)之积。输入分2*2 行:前两行为第一个矩阵,后两行为第二个矩阵。行:前两行为第一个矩阵,后两行为第二个矩阵。 样例输入:样例输入: 1 2 4 5 3 5 1 7

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论