实验报告
课程名称_____ C语言程序设计_____ 实验项目___数组___
实验仪器______计算机___________
系别_____自动化学院_______ 专业______自控_________
班级/学号___自控1404/2014010667_学生姓名___ 杨逸航_________
实验日期____2015年1月10日___ 成绩_______________________指导教师______周淑一________
一、实验目的
1、掌握C语言中,基本数组的使用方法。
2、掌握数组中定义及初始化的用法。
3、掌握一维数组元素的引用及其应用。
4、掌握一维数组的常见算法。
二、实验内容
1、已知有一组测量数据。请编写程序将这组数据保存在数组x 中,并计算最大值,最小值和平均值,最后输出这组测量数据以及最大值、最小值和平均值。
输出:这组数据以及最大值、最小值和平均值。
程序代码:
#include
void main()
{
int max=0,min=100;
float sum=0;
int temp1=0,temp2=0;
int a[10]={32,27,64,18,95,14,90,70,60,37};
printf("序号\t测量值\n");
for(int i=0;i<10;i++)
{
if(max { max=a[i]; temp1=i; } if(min>a[i]) { min=a[i]; temp2=i; } printf("%d\t%d\n",i,a[i]); sum+=a[i]; } printf("这组数的最大值是: %d",max); printf("最小值是: %d",min); printf("平均值是: %.2f\n",sum/10); } 2、某班20个学生C语言成绩已知,请编写程序,统计不及格人数。 输入:C语言成绩 输出:不及格的人数 程序代码: #include void main() { int a[20],n=0,i; printf("请输入20个学生的成绩\n"); for( i=0;i<20;i++) { scanf("%d",&a[i]); } for(i=0;i<20;i++) { if(a[i]<60) n++; } printf("不及格人数为:%d\n",n); } 3、某公司负责产品销售的5名员工,本季度销售额分别为:12,23,35,20,11。编写程序,绘制一个柱状图直观表示。 程序代码: #include "stdio.h" int main() { int i,j,score[5]; for(i=1;i<=5;i++) { printf("请输入第%d个职员的销售额:",i); scanf("%d",&score[i]); } printf("5位员工销售额的柱状图\n"); for(j=1;j<=5;j++) { printf("第%d个职员的销售额:",j); for(i=1;i printf("%c",'*'); printf("\n"); } return 0; } 4、编写一个程序,在整数数组中设置十个值,然后从键盘输入一个要查找的数a,顺序查找每个元素,判断是否与a相等,若相等,则输出“查找成功”,并结束查找,否则输出“查找失败”。输入:一个数字 输出:是否查找成功 程序代码: #include "stdio.h" int main() { int i,a[10]; int c,flag=0; printf("请输入10个数字:"); for(i=0;i<10;i++) { scanf("%d",&a[i]); } printf("请输入要查找的数字:"); scanf("%d",&c); for(i=0;i<10;i++) { if(c==a[i]) { flag=1; break; } } if(flag==1) printf("查找成功!\n"); else printf("查找失败!\n"); return 0; } 5、我校邀请40名学生在校园歌手大赛中为10名歌手投票,选出最受欢迎的歌手,歌手编号:1、2、3...10,编写程序,定义 一个有40个元素的数组a,统计每位歌手的票数并输出最受欢迎的歌手的编号。 程序代码: #include "stdio.h" int main() { int i,a[40]; int b[10]; for(i=0;i<20;i++) { scanf("%d",&a[i]); } for(i=20;i<40;i++) { scanf("%d",&a[i]); } for(i=0;i<10;i++) b[i]=0; for(i=0;i<40;i++) switch(a[i]) { case 1:b[0]=b[0]+1;break; case 2:b[1]=b[1]+1;break; case 3:b[2]=b[2]+1;break; case 4:b[3]=b[3]+1;break; case 5:b[4]=b[4]+1;break; case 6:b[5]=b[5]+1;break; case 7:b[6]=b[6]+1;break; case 8:b[7]=b[7]+1;break; case 9:b[8]=b[8]+1;break; case 10:b[9]=b[9]+1; } printf("歌手编号\t得票数\n"); for(i=0;i<10;i++) { printf("%d\t%d\n",i+1,b[i]); } printf("\n"); return 0; } 6、定义一个长度为10的整型数组a,在数组a中输入10个各不相同的整数;再输入一个整数,删除a中相同的元素(如果没有此数,则不删除),最后输出删除后的数组。 程序代码: #include "stdio.h" int main() { int i,a[10],x; printf("请输入10个整数:"); for(i=0;i<10;i++) { scanf("%d",&a[i]); } printf("请输入要删除的数:"); scanf("%d",&x); for(i=0;i<10;i++) { if(x!=a[i]) printf("%d\t",a[i]); } printf("\n"); return 0; } 7、定义一个长度为10的整型数组a ,在前九个元素中安从小到大输入九个整数,再输入一个整数值,将该整数值插入数组a 中, 确保插入后是仍有序的,并输出整个数组。程序编码: #include "stdio.h" int main() { int i,a[10],j,t; printf("请输入9个整数:"); for(i=0;i<9;i++) { scanf("%d",&a[i]); } printf("请输入要插入的数:"); scanf("%d",&a[9]); for(i=0;i<10;i++) { printf("%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("插入操作后的数组是:"); for(i=0;i<10;i++) printf("%d ",a[i]); printf("\n"); return 0; } 8、定义一个长度为10的整型数组a ,找出数值最大的,并与a[0]互换,输出互换后的数组;再将a[1]~a[9]的最大值与a[1]互换, 输出互换后的数列。 程序代码:#include int main() { int a[10],i,max1,max2,l=0,j=0,t,r; printf("请输入10个整数:"); for(i=0;i<10;i++) scanf("%d",&a[i]); max1=a[0]; for(i=0;i<10;i++) {