《C语言》
实验报告
姓名: 董俊蛟
班级: 数学101 学号: 1009300101
实验日期: 2011年4月27日
《C语言》实验报告
一、实验题目:
数组的应用
二、实验目的:
1.掌握一、二维数组、字符数组的定义、初始化和引用方法及字符串函数的用法。
2.理解与数组有关的算法。
三、实验内容:
1.用起泡法(或称冒泡法)对15、5、9、2、7、11、8、3、12、1共10个整数由小到大排序。画出N-S算法流程图,编写源程序,给出注释及运行结果。至少自己修改数据1次,重新运行1个新结果。
2.求A矩阵与B矩阵的和矩阵C。其中
?1121??2352?A??2213?,B??3161?。画出N-S算法流程图,编写源程序,给
???????4321???1150??出注释及运行结果。至少自己修改数据1次,重新运行1个新结果。
3.编程求出二维数组a的最大元素,同时求出该最大元素所在的行row和列
?10921?column。a数组的矩阵表示如下:A??122113?。画出N-S算法流程图,
????4132114??编写源程序,给出注释及运行结果。
4.定义一个二维数组,存放5个字符串“dog”,“tiger”,“wolf”,“cat”,“horse”,然后用选择法将这5个字符串按由小到大的顺序并输出。画出N-S算法流程图,编写源程序,给出注释及运行结果。
四、实验结果:
1. #include /*标准输入输出库*/ void main() /*主函数*/ {
int a[10]; /*定义整型数组a[10]*/ int i,j,t; /*定义整型变量i,j,t*/
for(i=0;i<10;i++) /*进行10次循环,实现10趟比较 */ scanf(\ /*输入整型数组*/ printf(“\\n”); /*换行*/
for(j=0;j<9;j++) /*进行9次循环,实现9趟比较*/
- 1 -
《C语言》实验报告
for(i=0;i<9-j;i++) /*在每一趟中进行9-j次比较*/ if(a[i]>a[i+1]) /*如果a[i]大于a[i+1]*/ {
t=a[i]; /*将a[i]赋给t*/
a[i]=a[i+1]; /*将a[i+1]赋给a[i]*/ a[i+1]=t; /*将t赋给a[i+1]*/ }
for(i=0;i<10;i++) /*i初值为0,判断i是否小于10,i加1*/ printf(\ /*输出a[i]*/ }
输出结果: 第一次输出
第二次输出
N-S流程图:
输入10个数赋给a[0]到a[9] 如果i<9 如果i<9-j a[i]>a[i+1] Y N a[i]和a[i+1]互 换位置
输出a[0]到a[9]的值 2、#include
- 2 -
《C语言》实验报告
void main() /*主函数*/ {
int c[3][4],i,j; /*定义整型变量 int c[3][4],i,j*/ int a[3][4]={{1,1,2,1},{2,2,1,3},{4,3,2,1}}, /*分行给二维数组a[3][4]赋初值*/ b[3][4]={{2,3,5,2},{3,1,6,1},{1,1,5,0}}; /*分行给二维数组b[3][4]赋初值*/ printf(“A is:\\n”); /*输出A is:*/
for(i=0;i<3;i++) /*i从0到2执行下列语句*/ {for(j=0;j<4;j++) /*j从0到3执行下列语句*/ printf(“%d”,a[i][j]); /*以整形输出a[i][j]*/ printf(“\\n”);} printf(“B is:\\n”); for(i=0;i<3;i++) {for(j=0;j<4;j++) printf(“%d”,b[i][j]); printf(“\\n”);} for(i=0;i<3;i++) for(j=0;j<4;j++) c[i][j]=a[i][j]+b[i][j]; printf(“C is:\\n”); for(i=0;i<3;i++) { for(j=0;j<4;j++) printf(“%d\\n”,c[i][j]); } }
第一次输出结果:
第二次输出结果:
/*换行*/ /*输出B is:*/
/*i从0到2执行下列语句*/ /*j从0到3执行下列语句*/ /*以整形输出b[i][j]*/ /*换行*/
/*i从0到2执行下列语句*/ /*j从0到3执行下列语句*/ /* a[i][j]+b[i][j]的值赋给c[i][j]*/
/*输出C is:*/
/*i从0到2执行下列语句*/
/*j从0到3执行下列语句*/
/*以整形输出c[i][j]*/ - 3 -
《C语言》实验报告
N-S流程图:
输入a[3][4], b[3][4]的值 如果i<3, 如果j<4 输出a[i][j] 如果i<3, 如果j<4 输出b[i][j] 如果i<3 如果j<4 c[i][j]=a[i][j]+b[i][j] 如果i<3 如果j<4 如果i<3 输出c[i][j]
3. #include
void main() /*主函数*/ {
int i,j,row=0,column=0,max; /*定义整形变量i,j,row=0,column=0*/ int a[3][4]={{10,9,2,1},{12,2,11,3},{4,13,21,14}};/*分行给二维数组a[3][4]赋初值*/ max=a[0][0]; /* a[0][0]赋给max */
for(i=0;i<3;i++) /*i从0到2执行下列语句*/ for(j=0;j<4;j++) /*j从0到3执行下列语句*/ if(a[i][j]>max) /*如果a[i][j]>max */ {max=a[i][j]; /* a[i][j]赋给max */ row=i; /*i赋给row */
column=j; /*j赋给column */
- 4 -