C语言实验报告数组.docx
《C语言实验报告数组.docx》由会员分享,可在线阅读,更多相关《C语言实验报告数组.docx(10页珍藏版)》请在冰豆网上搜索。
C语言实验报告数组
C语言实验报告
实验名称
专业
姓名
学号
班级
指导老师
实验(shíyàn)七数组
1.实验(shíyàn)目的
(1)熟练掌握一维数组、二维数组的定义、初始化和输入/输出(shūchū)方法;
(2)熟练掌握字符数组和字符串函数(hánshù)的使用;
(3)掌握与数组有关的常用(chánɡyònɡ)算法(如查找、排序等)。
2.实验指导
(1)对任意一个一维型数组,从中找出数组元素的最大值和最小值并输出。
要求:
1数组有十个元素;
2使用scanf函数实现数组元素的输入前给出必要的提示;
3输出时,首先输出数组的十个元素,然后输出其最大值和最小值。
分析指导:
1算法分析:
首先定义一个数组,通过循环从键盘输入十个数组元素的值,再通过另一个循环判断数组元素的最大只和最小值;
2根据分析情况编写程序:
#include
main()
{
inta[10],i,max,min;
printf("pleaseinputtenintegers:
");
for(i=0;i<=9;i++)
{
scanf("%d",&a[i]);
}
max=a[0];
min=a[0];
for(i=1;i<=9;i++)
{
if(a[i]>max)
max=a[i];
if(a[i]min=a[i];
}
for(i=0;i<=9;i++)
{
printf("a[%d]=%d\n",i,a[i]);
}
printf("Themaximumvalueis%d,andtheminimumvalueis%d\n",max,min);
}
运行(yùnxíng)程序,输入十个整数(zhěngshù),如:
213761791289763559
运行结果(jiēguǒ)如下:
(2)编写(biānxiě)函数cmpStr(chars1[],chars2[])比较两个字符串s1和s2的大小。
如果s1>s2,返回一个正数;s1=s2,返回0;s1要求:
1不允许使用strcmp()函数;
2用gets()函数在主函数中输入两个字符串;
3实现触摸屏受托人()函数,返回的正数或负数的绝对值应该是进行比较的两个字符传中相应字符的ASCII码的差值。
分析指导:
1算法分析:
两个字符串从第一个字符开始一一对应进行比较,直到不相等的那个字符,从而求得它们的ASCII码的差值。
比如,‘A’与‘C’相比,由于‘A’<‘C’,应输出负数,由于‘A’与‘C’的ASCII码的差值为2,因此,应输出“-2”。
同理,“And”和“Aid”比较,根据第二个字符比较结果,‘n’比‘I’大5,因此应输出‘5’;
2根据(gēnjù)分析情况编写程序:
#include
intcmpstr(chars1[],chars2[])
{
inti,diff;
i=0;
while((s1[i]==s2[i])&&(s1[i]!
='\0'))i++;
if(s1[i]=='\0'&&s2[i]=='\0')
diff=0;
else
diff=s1[i]-s2[i];
returndiff;
}
voidmain()
{
intz;
chars1[100],s2[100];
printf("inputthefirststring:
");
//输入(shūrù)字符串1
gets(s1);
printf("inputthesecondstring:
");
//输入(shūrù)字符串2
gets(s2);
z=cmpstr(s1,s2);
//输出比较(bǐjiào)结果
printf("thedifferencebetweentwostringsis%d\n",z);
}
查看运行(yùnxíng)结果如下:
重新输入两个字符串meet,mood运行结果如下:
(3)再给定(ɡěidìnɡ)的字符串中查找指定的字符。
要求(yāoqiú):
1字符串采用(cǎiyòng)直接初始化的方式处理;
2通过scanf函数读入一个(yīɡè)任意字符;
3在字符(zìfú)串中查找该字符,如果存在该字符,输出该字符在字符串中的一次出现的位置,如果再给定的字符串中不存在该字符,则给出相应的说明信息。
#include
voidmain()
{
inti;
charch;
chars[]="program";
printf("输入一个英文字母:
");
scanf("%c",&ch);
for(i=0;s[i]!
='\0';i++)
{
if(s[i]==ch)
break;
}
if(i<7)
printf("s[%d]=%c\n",i,ch);
else
printf("Nofounded\n");
}
输入一个英文字母O运行程序如下:
再次输入一个(yīɡè)英文字母w运行程序如下:
(4)首先(shǒuxiān)输入一个大于二且小于十的整数n,然后定义一个二维整型数组(n*n),初始化该数组,讲述组中最大元素所在(suǒzài)的行和最小元素所在的行对调。
要求(yāoqiú):
1n*n数组元素的值由scanf函数从键盘输入(假定(jiǎdìng)最大值最小值不在同一行上),然后(ránhòu)输出该数组;
2查找(cházhǎo)最大值最小值所在的行,将数组中最大元素所在的行和最小元素所在的行对调,并输出对调后的数组;
3为直观起见,数组按n行n列的方式(fāngshì)输出;
4修改程序,对最大值与最小值可能出现在一行种的情况(qíngkuàng)进行处理。
#include
main()
{
longmatrix[9][9],min,max,temp;
inti,j,n,nMax=0,nMin=0;
printf("\npleaseinputenofmatrix:
\n");
scanf("%d",&n);
printf("\npleaseinputeelementsofmatrix(%d*%d):
\n",n,n);
for(i=0;ifor(j=0;jscanf("%ld",&matrix[i][j]);
min=max=matrix[0][0];
for(i=0;ifor(j=0;j{
if(matrix[i][j]>max)
{
max=matrix[i][j];
nMax=i;
}
elseif(matrix[i][j]{
min=matrix[i][j];
nMin=j;
}
}
for(j=0;j{
temp=matrix[nMax][j];
matrix[nMax][j]=matrix[nMin][j];
matrix[nMin][j]=temp;
}
printf("\nResultmatrix:
\n");
for(i=0;i{
for(j=0;jprintf("%5ld",matrix[i][j]);
printf("\n");
}
}
输入(shūrù)一个数4,输入一个4*4的数组
1367
2458
1357
2697
运行程序(chéngxù)如下:
再次输入一个(yīɡè)数字3,输入一个3*3的数组
123
245
378
运行(yùnxíng)程序如下:
3实验(shíyàn)结论
通过(tōngguò)本次实验熟练的掌握一维数组、二维数组的定义、初始化和输入/输出方法以及字符数组和字符串函数的使用(shǐyòng),还有就是掌握与数组有关的常用算法
内容总结
(1)C语言实验报告
实验七数组
实验目的
熟练掌握一维数组、二维数组的定义、初始化和输入/输出方法
(2)实验指导
对任意一个一维型数组,从中找出数组元素的最大值和最小值并输出
(3)用gets()函数在主函数中输入两个字符串
(4)//输入字符串1
gets(s1)
(5)//输入字符串2
gets(s2)
(6)为直观起见,数组按n行n列的方式输出
(7)j