- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验4数组
一、实验目的
熟悉c语言关于“数组”的语法规则;
掌握C语言程序中关于数值“数组”的应用技巧;
掌握一维数组和二维数组的定义、赋值和输入输出的方法;数组元素的存储形式和引用方法;
掌握与数组有关的排序(选择法、冒泡法)、有序数列的插入和删除操作等算法(特别是排序算法)。
二、实验内容步骤
(一)实验准备
数组的应用场合:处理有限个相同类型数据可定义为数组
数组的定义、引用、初始化
定义:如int a[10]; float b[3][4]; char sl[80],s2[3][80];等。要求用常量指定所定义的数组大小;数 组定义后,编译吋分配连续的存储空间,且存储空间二元素个数XsiZeof(元素类型)(单位是字节),二维数 组按行存放其元素;一维数组--般存储线性序列的数据,二维数组一般存储矩阵,一维字符数组一般存储 一个字符串,二维字符数组一般存储多个字符串;一维数组名代表数组存储空间的起始地址,二维数组名 代表首行的地址,二维数组名带一个下标表示下标所在行的首元素地址。
引用:如a[i]、b[i]fj]等。一维数值数组通常结合单重for循环访问其所有元素,用循环变量控制 元素下标,从0到长度-1;二维数组通常结合双重foi?循环访问其所有元素,外循环控制行(第一维)下 标,内循环控制列(第二维)下标;字符数组通常用数组名引用其表示地址单元开始的所有元素。
初始化:可全部元素初始化、部分元素初始化;二维数组可按行初始化或按元素排列顺序初始化; 字符数组可逐个元素赋初值或以字符串形式赋初值。
阅读以下程序,并分析其功能,调试运行程序后再分析其运行结果。
程序一,程序文件名为ex7-l.c o (掌握冒泡排序算法)
include stdio.h
void main()
{
int a[10],ij,t;
printff/lnput 10 nuiriberszXn*);
for(i=0;i10;i++)
scanf(n%dH,a[i]);
for(j=0;j9;j++)
for(i=0;i9-i;i++) if(a[i]a[i+l]) {t=a[i]; a[i]=a[i+l]; a[i+l]=t;}
pnntf(Mthe sorted numbers:\nn);
for(i=0;i10;i++)
printf(n%d H,a[i]);
printf(:,\nM);
}
程序二,程序文件名为ex7-2.c o (掌握矩阵转置算法)
include stdioh
void main()
int a[2][3J={{l,2,3},{4,5,6}};
int b⑶[2],iJ;
printf(HArray A:\nH);
for(i=0;i2;i++)
{
for(j=0;j3;j++)
{
printf「%5(T,a[i]Lj]);
b[j][i]=a[i][j];
}
}
for(i=0;i3;i++)
{
for(j=0;j2;.j++)
printf(n%5dM,b[i]|j]);
printf(,,\nM);
}
}
③程序三,程序文件名为ex7-3.c o (掌握统计一行单词数的算法)
# include stdio.h
void main()
{
char string[81],c;
int i,num=0,word=0;
printf(nInput a string:\nH);
gets(string);
for(i=0; (c=string[i])!=,\O,; i++)
if(c==* )
word=0;
else if(word==0)
{
word=l;
num++;
}
printf(There are %d words in the line.\nH,num);
}
(二)实验内容(按要求设计以下程序,并调试分析运行结果,此部分完成在实验报告上)
用选择法对10个数实现递增排序。(文件名存为sy4-l.c)
#include stdio.h
main()
{ int a[10],i,j,k,x;
printf(nInput 10 numbers:\nu);
for(i=0;i10;i++)
scanf(”%d”,a[i]);
printf(u\nn);
for(i=0;i9;i++)
{ k=i;
for(j=i+l;j=9;j++)
if(a[j]afk]) k=j;
if(i!=k)
{ x=a[i];a[i]=a[k];a[k]=x;}
}
printf(The sorted numbersAn);
for(i=0;i10;i++)
printf(n%d Xi]);
}
运行情况
Input 10 numbers:
9876543210
The sorted numbers:
01234
文档评论(0)