《C语言》课内实验报告4
更新时间:2023-05-23 15:02:01 阅读量: 实用文档 文档下载
- 《C语言》中图分类号是推荐度:
- 相关推荐
一、实验题目:
实验四 数组的应用
二、实验目的:
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-
正在阅读:
《C语言》课内实验报告405-23
常州市齿轮制造企业名录2018版342家 - 图文03-15
what are the best ways to reduce stress03-16
产业集聚区发展现状与对策01-24
小学语文作文创新教学浅探07-27
差旅费报销单电子版08-31
金刚经某师兄的见解04-27
李刚-《房地产导刊》论建筑施工管理的安全和质量管理 - 图文06-24
业务启动会流程与运作04-30
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 语言
- 实验
- 报告