文档库 最新最全的文档下载
当前位置:文档库 › 数组一作业

数组一作业

实验报告

课程名称_____ 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++)

{

if(max1

{

max1=a[i];

j=i;

}

}

t=a[0];

a[0]=a[j];

a[j]=t;

printf("打一次互换后的数组:");

for(i=0;i<10;i++)

printf("%d ",a[i]);

printf("\n");

max2=a[1];

for(i=1;i<10;i++)

{

if(max2

{

max2=a[i];

l=i;

}

}

r=a[1];

a[1]=a[l];

a[l]=r;

printf("第二次互换后的数组:");

for(i=0;i<10;i++)

printf("%d ",a[i]);

printf("\n");

return 0;

}

9、编写一个采用选择排序算法实现数据排序(数组长度为10)。 程序代码:

#include "stdio.h"

void main()

{

int i,j,x,l,a[10];

printf("输入待排序的数组");

for(i=0;i<10;i++)

scanf("%d",&a[i]); for(i=0;i<10;i++)

{

x=a[i];

l=i;

for(j=i;j<10;j++)

{

if(a[j]>x)

{

x=a[j];

l=j;

}

}

a[l]=a[i];

a[i]=x;

}

printf("排序后的数组:");

for(i=0;i<10;i++)

printf("%d ",a[i]);

printf("\n");

}

10、编写一个采用插入排序算法实现数据从小到大排序的程序(数组长度为10)。

相关文档