1、实验四数组二实验四 数组(二)一、实验目的1.掌握一维字符数组的定义及初始化。2.掌握一维字符数组元素的引用及其应用。3.掌握二维数组的定义和初始化。4.掌握二维数组元素的引用及其应用。二、实验内容题目1:输入十个人的姓名,并按升序输出。(用选择法或者冒泡法排序)问题Strcpy函数是完全将后一个代替前一个么?源代码#include #include int main() char a1080,x80; int i,j; for(i=0;i10;i+) gets(ai); for(i=0;i9;i+) for(j=i+1;j0) strcpy(x,aj); strcpy(aj,ai); str
2、cpy(ai,x); for(i=0;i10;i+)printf(n%s,ai); return 0;程序流程图实验结果题目2:求两个矩阵的积。如:运算规则为:第i行第j列相乘得到结果矩阵中rij的值。比如:r00 = 1*1+2*5+3*8=35;r01 = 1*5+2*3+3*1=14;r10 = 4*1+5*5+6*8=77;r11 = 4*5+5*3+6*1=41;要求:1.数组的行数和列数不超过100。2.输入第一行中,第一个正整数m,表示第一个矩阵的行数,输入第二个正整数n,表示第一个矩阵的列数,也即是第二个矩阵的行数,输入第三个正整数p,表示第二个矩阵的列数。3.接下来的m*n个
3、数是第一个矩阵中的数。4.再接下来的n*p个数是第二个矩阵中的数。5.输出计算结果,为一个m行,p列的矩阵。问题无源代码 # include int main() int a100100 =0; int b100100 = 0; int c100100 = 0; int i = 0,j = 0,k=0; int n = 0; int x=0,y=0,z=0; printf(请输入矩阵a的行数:); scanf(%d,&x); printf(请输入矩阵a的列数:); scanf(%d,&y); printf(请输入矩阵a,元素之间用Tab隔开:n); for(i=0;ix;i+) for(j=0
4、;jy;j+) scanf(%d,&aij); printf(n); printf(请输入矩阵b的行数:); scanf(%d,&y); printf(请输入矩阵b的列数:); scanf(%d,&z); printf(请输入矩阵b,元素之间用Tab隔开:n); for(i=0;iy;i+) for(j=0;jz;j+) scanf(%d,&bij); printf(n); /jisuan for(i=0;ix;i+) for(j=0;jz;j+) for(k=0;ky;k+) cij += aik*bkj; /output for(i = 0;i x;i+) for(j = 0;j z;j+
5、) printf(%dt,cij); printf(n); return 0; 程序流程图【必须有】实验结果题目3:求矩阵的鞍点。鞍点位置上的元素在该行中值最大,在该列中值最小。如下面矩阵的鞍点为35。【输入】前两个数为行数和列数,其后是矩阵中的元素【输出】如果没有鞍点,输出NO;如果有输出格式为:值1,行下标1,列下标1, 值2,行下标2,列下标2问题下标的输出转换。源代码#include int main() int a100100; int m,n,i,j,sign; printf(input m and n:n); scanf(%d%d,&m,&n); printf(请输入这个矩阵n)
6、; for(i=0;im;i+) for(j=0;jn;j+) scanf(%d,&aij); for(i=0;im;i+) for(sign=0,j=1;jn;j+) if(aisignaij) sign=j; for(j=0;jajsign) break; if(j=m) printf(鞍点是:%dn,aisign); return 0;程序流程图【必须有】实验结果题目4:井字格游戏本题目可替代题目13作为实验内容。程序大致的执行过程如图所示:功能包括:1.允许两个玩家下棋2.允许玩家输入下棋的坐标3.显示当前棋盘状态4.判断玩家是否下错位置,即在已经下过棋的位置再次下棋5.判断玩家下棋后
7、,输赢状态6.在屏幕提示中指导玩家交替下棋源代码#include#includeint c,i,j,kongzhi=1,i=1;int basic33=0,0,0,0,0,0,0,0,0;int tasic33=0,0,0,0,0,0,0,0,0;char T33;int printerA(int site1,int site2) if(tasicsite1site2=0&basicsite1site2=0) basicsite1site2=1; Tsite1site2=X; for(i=0;i3;i+) printf(-n); for(j=0;j3;j+) printf(|); printf
8、(%c,Tij); printf(|n); if(i=2) printf(-n); return 0; else return 99;int printerB(int site1,int site2) if(tasicsite1site2=0&basicsite1site2=0) tasicsite1site2=-1; Tsite1site2=O; for(i=0;i3;i+) printf(-n); for(j=0;j3;j+) printf(|); printf(%c,Tij); printf(|n); if(i=2) printf(-n); return 0; else return -
9、99;int main() int m,n,a,b; while(kongzhi=1) do a=0; printf(请A下子:); scanf(%d%d,&m,&n); system(cls); a=printerA(m,n); if(a=99) printf(对不起,您下错位置了!n); while(a=99); if(basic00+basic01+basic02=3)|(basic10+basic11+basic12=3)|(basic20+basic21+basic22=3)|(basic00+basic11+basic22=3)|(basic02+basic11+basic20=3
10、) printf(A赢了!n); return 0; do b=0; printf(请B下子:); scanf(%d%d,&m,&n); system(cls); b=printerB(m,n); if(b=-99) printf(对不起,您下错位置了!n); while(b=-99); if(tasic00+tasic01+tasic02=-3)|(tasic10+tasic11+tasic12=-3)|(tasic20+tasic21+tasic22=-3)|(tasic00+tasic11+tasic22=-3)|(tasic02+tasic11+tasic20=-3) printf(B
11、赢了!n); return 0; i+; if(i=9) printf(平局!); return 0; 程序流程图【必须有】实验结果 2.2.实验心得体会本次实验的收获是什么了解strcpy函数和strcmp函数。二维数组的赋值与输入输出。遇到了哪些问题,如何解决的1.矩阵相乘;解决,找到行与列还有两个矩阵中列和行相等的关系2.Strcpy函数若前一个字符串长后一个短,执行完后前一个字符串并不为后一个字符串,即0后还有字符。三、实验要求1.利用F10进行循环结构的单步跟踪练习2.实验报告内容2.1.实验内容及结果问题源代码程序流程图【必须有】实验结果2.2.实验心得体会本次实验的收获是什么遇到了哪些问题,如何解决的3.报告命名学号_班级_姓名_日期.docx如:2013011296_软工1301_白雪_20141205.docx4.报告上传邮箱
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1