一、实验内容
1、实验要求:输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩。
代码:
#include <stdio.h>
#define N 1000
int main()
{
int a,i=0,sum=0,max,min,m=0,n=0,e=0;
double average;
int score[N];
printf("人数\n");
scanf("%d",&a);
for(i=0;i<a;i++)
{
printf("学生成绩\n");
scanf("%d",&score[i]);
sum=sum+score[i];
}
average=(double)sum/a;
printf("%.2lf\n",average);
max=score[0];
min=score[0];
for(i=0;i<a;i++)
{
if(score[i]>max)
{
max=score[i];
m=i;
if(score[i]<min)
{
min=score[i];
e=i;
}
printf("max=%d,min=%d,m=%d",max,min,m);
printf("input the score you want to find\n",m);
scanf("%d",&n);
for(i=0;i<a;i++)
{
if(n==score[i])
{
printf("%d\n",i);
m=m+1;
}
}
printf("符合要求的一共有%d个\n",m);
return 0;
}
运行结果:

2.
实验要求:现有一个有序正整数数组(从小到大排序),输入一个数,插入到数组中,要求插入后的数组仍然有序。对插入到最前、最后、中间位置三种情况进行验证。
代码:
#include <stdio.h>
#define N 10
int main()
{
int num[N]={3,6,9,12,16,19,23,26,29},i,j,n,a,b;
printf("请输入一个数字:\n");
scanf("%d",&a);
for(i=0;i>=0;i++)
{
if(a<num[i+1])
{
for(j=8;j>i;j--)
{
num[j+1]=num[j];
}
num[i+1]=a;
break;
}
}
for(i=0;i<N;i++)
printf("%4d",num[i]);
return 0;
}
运行结果:

3.实验要求:运用数组写火柴棍
代码:
#include <stdio.h>
int main()
{
int a,b,c,x,y,z;
int match[10]={6,2,5,5,4,5,6,3,7,6};
for(a=10;a<10;a=a-1)
{
x=match[a];
for(b=10;b<10;b=b-1)
{
y=match[b];
for(c=10;c<10;c=c-1)
{
z=match[c];
if(a+b==c&&x+y+z==12)
{
printf("%d+%d=%d\n",a,b,c);
}
}
}
}
return 0;
}
运行结果:

知识点总结:1.数组的基本格式 :数组类型 数组名称 数组长度,数组的下标从零开始。
2.数组必须先定义后使用。
3.数组能处理大量数据,优化程序。
4.数组一旦创建,不能改变大小。
5.多方面考虑题目结果,使代码完整。
6.变量对应的关系要搞清楚。
实验总结: 1.数组与循环结构紧密相连,循环变量的值随数组元素的下标变化。
2.注意数组越界问题。
3.注意数组中插入数字时,其后面的数字位置都加1.
4.数组不能被赋值。
浙公网安备 33010602011771号