实验报告实验六数组.docx
《实验报告实验六数组.docx》由会员分享,可在线阅读,更多相关《实验报告实验六数组.docx(7页珍藏版)》请在冰豆网上搜索。
![实验报告实验六数组.docx](https://file1.bdocx.com/fileroot1/2023-5/24/2f56b294-71f4-4a5b-8aff-c1d9c773cb7d/2f56b294-71f4-4a5b-8aff-c1d9c773cb7d1.gif)
实验报告实验六数组
实验报告(实验六-数组)
TaishanUniversity
教师教育学院实验报告
【-学年第学期】
【一、基本信息】
【实验课程】
C语言程序设计
【设课形式】
非独立
【课程学分】
3
【实验项目】
实验六数组(—)
【项目类型】
验证型
【项目学时】
6
【实验室名】
网络技术实验室
【专业名称】
教育技术学
【年级】
2011级
【实验班组】
【学生姓名】
【学号】
【同组学生】
【实验日期】
2012.10.29
【二、实验教师对实验报告的评价及意见】
实验成绩:
教师签名:
批改日期:
【三、实验预习】
①实验目的和要求;②实验内容和原理或设计的知识点(综合性实验);③实验条件(实验设备、软件、材料等):
④实验方法、步骤、操作过程或实验设计方案(设计型实验);⑤根据需要合理设计实验数据记录表格。
实验目的和要求:
一、实验目的:
1.掌握一维数组和二维数组的定义、初始化。
2.掌握一维数组和二维数组的输入输出和使用的方法。
3.掌握字符数组和字符串函数的使用
4.掌握与数组有关的算法
5.掌握冒泡法排序、选择法排序
二、实验要求:
编程序并上机调试运行。
1.用冒泡法对20个整数排序。
20个整数需要键盘键入。
2.用选择法对20个整数排序。
20个整数需要键盘键入。
3.找出一个二维数组的“靶点”,即该位置上的元素在该行上最大,在该列上最小(该数组也可能没有靶点)。
4.有一篇文章有3行文字,每行80个字符,要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。
【四、实验过程】
该部分主要包括学生在实验过程中所用的实际实验方法、步骤、操作过程及注意事项,实验设计方案(设计型实验)的过程,实验现象,原始数据记录等。
程序代码和运行结果
1.冒泡法
#include
intmain()
{
inta[10];
inti,j,t;
printf("input10numbers:
\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("thesortednumbers:
\n");
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
return0;
}
2.选择法
#include
intmain()
{inti,j,min,temp,a[21];
printf("enterdata:
\n");
for(i=1;i<=20;i++)
{printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("\n");
printf("Theorginalnumbers:
\n");
for(i=1;i<=20;i++)
printf("%5d",a[i]);
printf("\n");
for(i=1;i<=19;i++)
{min=i;
for(j=i+1;j<=20;j++)
if(a[min]>a[j])min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
printf("\nThesortednumbers:
\n");
for(i=1;i<=10;i++)
printf("%5d",a[i]);
printf("\n");
return0;
}
3.找靶点
#include
#defineN4
#defineM5/*数组为4行5列*/
intmain()
{
inti,j,k,a[N][M],max,maxj,flag;
printf("pleaseinputmatrix:
\n");
for(i=0;ifor(j=0;jscanf("%d",&a[i][j]);
for(i=0;i{max=a[i][0];/*开始时假设a[i][0]最大*/
maxj=0;/*将列号0赋给maxj保存*/
for(j=0;jif(a[i][j]>max)
{max=a[i][j];/*将本行的最大数存放在max中*/
maxj=j;/*将最大数所在的列号存放在maxj中*/
}
flag=1;/*先假设是鞍点,以flag为1代表*/
for(k=0;kif(max>a[k][maxj])/*将最大数和其同列元素相比*/
{flag=0;/*如果max不是同列最小,表示不是鞍点令flag1为0*/
continue;}
if(flag)/*如果flag1为1表示是鞍点*/
{printf("a[%d][%d]=%d\n",i,maxj,max);/*输出鞍点的值和所在行列号*/
break;
}
}
if(!
flag)/*如果flag为0表示鞍点不存在*/
printf("Itisnotexist!
\n");
return0;
}
4.统计字符
#include
intmain()
{inti,j,upp,low,dig,spa,oth;
chartext[3][80];
upp=low=dig=spa=oth=0;
for(i=0;i<3;i++)
{printf("pleaseinputline%d:
\n",i+1);
gets(text[i]);
for(j=0;j<80&&text[i][j]!
='\0';j++)
{if(text[i][j]>='A'&&text[i][j]<='Z')
upp++;
elseif(text[i][j]>='a'&&text[i][j]<='z')
low++;
elseif(text[i][j]>='0'&&text[i][j]<='9')
dig++;
elseif(text[i][j]=='')
spa++;
else
oth++;
}
}
printf("\nuppercase:
%d\n",upp);
printf("lowercase:
%d\n",low);
printf("digit:
%d\n",dig);
printf("space:
%d\n",spa);
printf("other:
%d\n",oth);
return0;
}
【五、结果分析与讨论】
根据相关的理论知识对所得到的实验结果进行解释和分析,包括实验的结果是否与理论相吻合以及原因,实验后的心得体会、建议等。