《C语言》课内实验报告4

更新时间:2023-05-23 15:02:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、实验题目:

实验四 数组的应用

二、实验目的:

1.掌和引用方法及字符串函数握一、二维数组、字符数组的定义、初始化的用法。

2.理解与数组有关的算法。

三、实验内容:

1.用起泡法(或称冒泡法)对15、5、9、2、7、11、8、3、12、1共10个整数由小到大排序。画出N-S算法流程图,编写源程序,给出注释及运行结果。至少自己修改数据1次,重新运行1个新结果。

#include<stdio.h> /*包含头文件*/ void main() /*空类型主函数*/ {

int a[10]; /*定义整型数组a,包含十个元素*/ int i,j,t; /*定义整形变量*/ printf("input 10 numbers :\n"); /*标准输入输出函数,输出“请输入十个数字”*/

for(i=0;i<10;i++) /*将0赋给i,当i小于10时执行循环,i加1*/

scanf("%d",&a[i]); /*标准输入输出函数,输入数字,将其赋给数组a[i]*/

printf("\n"); /*标准输出函数,输出换行*/ for(j=0;j<9;j++) /*当j=0比9小时,j自加一*/ for(i=0;i<9-j;i++) /*当i=0小于9-i时i加一*/ 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]*/ } printf("the sored numbers:\n"); /*标准输出函数,输出数字的顺序是:*/

for(i=0;i<10;i++) /*当i=0小于10时i自加一*/ printf("%d ",a[i]); /*标准输出函数输出a[i]*/ printf("\n"); /*标准输出函数,输出换行*/ }

N-S流程图:

输出 输入10个数字

i=0;i<0;i++; 输入a[i] 输出换行

当j=0;j<9;j++;

当i=0;i<9-j;i++;

a[i]是否大于a[i+1]

是 t=a[i]

a[i]=a[i+1] a[i+1]=t

输出 数字顺序是: i=0;i<10;i++; 输出a[i]

输出换行

2.求A矩阵与B矩阵的和矩阵C。其中

1121 2352

A 2213 ,B 3161 。画出N-S算法流程图,编写源程序,

4321 1150

给出注释及运行结果。至少自己修改数据1次,重新运行1个新结果。

#include<stdio.h> /*包含头文件*/ void main() /*空类型主函数*/ {

int c[3][4],i,j; /*定义数组c[3][4],整形变量i,j*/ int a[3][4]={{1,1,2,1},{2,2,1,3},{4,3,2,1}}; /*将整形数组变量a[3][4]进

行赋值*/

int b[3][4]={{2,3,5,2,},{3,1,6,1},{1,1,5,0}}; /*将整形数组变量b[3][4]进行赋值*/

printf("the A is\n"); /*标准输出函数 输出语句并换行*/ for(i=0;i<3;i++) /*当i=0;i<3时;i自加一,控制行列式A行循环*/

{

for(j=0;j<4;j++) /*当j=0;j<4时;j自加一,

控制行列式A列循环*/

printf("%d ",a[i][j]); printf("\n"); }

printf("the B is \n"); for(i=0;i<3;i++) 控制行列式B行循环*/

{

for(j=0;j<4;j++) 控制行列式B列循环*/

printf("%d ",b[i][j]); printf("\n"); } for(i=0;i<3;i++) 控制行列式C行循环*/

for(j=0;j<4;j++) 控制行列式C列循环*/

c[i][j]=a[i][j]+b[i][j]; 等于a[i][j]与b[i][j]对应位置元素之和*/

printf("the C is:\n"); for(i=0;i<3;i++) { for(j=0;j<4;j++) printf("%d ",c[i][j]); printf("\n"); } }

N-S流程图:

/*标准输出函数 数组a[3][4]的值*/ /*标准输出函数 输出换行*/ /*标准输出函数 输出语句并换行*/ /*当i=0;i<3时;i自加一, /*当j=0;j<4时;j自加一,

/*标准输出函数 数组b[3][4]的值*/ /*标准输出函数 输出换行*/ /*当i=0;i<3时;i自加一, /*当j=0;j<4时;j自加一, /*数组c[i][j]对应位置元素/*标准输出函数 输出语句并换行*/ /*当i=0;i<3时;i自加一*/ /*当j=0;j<4时;j自加一*/ /*标准输出函数 数组c[i][j]的值*/ /*标准输出函数 输出换行*/

输入a[3][4]b[3][4]的值 输出 the A is: j=0;j<4;j++; 输出a[i]][j]的值 输出换行 输出 the B is: i=0;i<3;i++; j=0;j<4;j++; 输出b[i]][j]的值 输出换行 i=0;i<3;i++; j=0;j<4;j++; c[i][j]=a[i][j]+b[i][j] 输出 the C is: i=0;i<3;i++; j=0;j<4;j++;

3.编程求出二维数组a的最大元素,同时求出该最大元素所在的行row和

10921

列column。a数组的矩阵表示如下:A 122113 。画出N-S算法流程

4132114

图,编写源程序,给出注释及运行结果。

#include<stdio.h> /*包含头文件*/ void main() /*空类型主函数*/ {

int i,j,row=0,column=0,max; /*定义变量*/ 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;i<3;i自加一,控制二维数组行循环*/ for(j=0;j<4;j++) /*当j=0;j<4;j自加一,控制二维数组行循环*/ if(a[i][j]>max) /*如果a[i][j]大于max*/ { max=a[i][j]; /*将a[i][j]赋给max*/ row=i+1; /*将i+1赋给row*/ column=j+1; /*将j+1赋给column*/ } printf("max=%d,row=%d,column=%d\n",max,row,column);/*输出max,row,column的值*/

}

输入a[3][4]的值

max=a[0][0]

i=0;i<3;i++

j=0;j<4;j++

是 否

max=a[i][j]

row=i+1

column=j+1

输出 max,row,column的值

4.定义一个二维数组,存放5个字符串“dog”,“tiger”,“wolf”,“cat”,“horse”,然后用选择法将这5个字符串按由小到大的顺序并输出。画出N-S算法流程图,编写源程序,给出注释及运行结果。

#include<stdio.h> /*包含头文件*/ #include<string.h> /*包含string函数库*/ void main() /*空类型主函数*/ {

char str[10][10]={"dog","tiger","wolf","cat","horse"};/*定义字符变量 二维数组str十行十列*/

int i,j; *定义整型变量 i,j*/ char string[30]; /*定义一维数组包含30个元素*/ for(j=0;j<5;j++) /*当j=0;j<5;j自加一,控制二维数组循环次数*/ for(i=0;i<4;i++) /*二维数组每一行每个字母的比较*/ if(strcmp(str[i],str[i+1])>0) /*如果前一个大于后一个字母*/ { strcpy(string,str[i]); /*将str[i]赋给string*/ strcpy(str[i],str[i+1]); /*将str[i+1] 赋给str[i]*/ strcpy(str[i+1],string); /*将string赋给str[i+1]*/ } for(i=0;i<5;i++) /*当i=0小于5时,i自加一*/ printf("%s ",str[i]); /*输出字符串str*/ }

定义字符变量char 并赋值

当i=0;i<5;i++

将str[i]赋给string

将str[i+1] 赋给

将string赋给

i=0;i<5;i++

四、实验结果:

1、实验结果 Ⅰ、输出结果

Ⅱ、输出结果

Ⅲ、输出结果

2、实验结果: 结果一

结果二

3、实验结果

4、实验结果:

五、实验体会或遇到问题:

1、难度很大,很伤脑筋。

2、学会了如何利用c语言来计算并表示数组。 3、容易忘在前面定义变量。 4、表示数组时注意\n的使用。 5、文本框的使用更加熟练。

6、注意c语言中的行与列比行列式的小一。 7、注意string函数库中函数的使用。

《C 语言》实验报告

-9-

本文来源:https://www.bwwdw.com/article/x8d4.html

Top