1.输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩。
#include <stdio.h>
#define N 100
int main()
{
int score[N],sum=0,c,j,max,min,i=0,x=0;
float average;
printf("输入学生的成绩,输入负数时退出
");
scanf("%d",&score[i]);
x++;
while(score[i]>=0)
{
sum+=score[i];
i++;
printf("输入学生的成绩,输入负数时退出
");
scanf("%d",&score[i]);
x++;
}
average=(float)sum/x;
printf("平均分为%.2f
",average);
max=score[0];
min=score[0];
i=0;
while(i<x&&score[i]>=0)
{
if(score[i]>max)
{
max=score[i];
}
if(score[i]<min)
{
min=score[i];
}
i++;
}
printf("最高分为%d,最低分为%d
",max,min);
i=0;
while(i<x&&score[i]>=0)
{
if(score[i]==max)
{
printf("最高分有第%d个人
",i+1);
}
if(score[i]==min)
{
printf("最低分有第%d个人
",i+1);
}
i++;
}
printf("输入一个成绩,说明是第几个学生
");
scanf("%d",&c);
for(j=0;j<i;j++)
{
if(c==score[j])
{
printf("该成绩有第%d个学生
",j+1);
}
}
return 0;
}

2.现有一个有序正整数数组(从小到大排序),输入一个数,插入到数组中,要求插入后的数组仍然有序。对插入到最前、最后、中间位置三种情况进行验证。
#include <stdio.h>
int main()
{
int i,j,x,a[11]={2,4,6,8,10,12,14,16,18,19};
printf("输入一个数,插入数组当中");
scanf("%d",&j);
for(i=0;i<10;i++)
{
if(a[i]>j)
{
x=i;
break;
}
else
{
x=10;
}
}
for(i=10;i>x;i--)
{
a[i]=a[i-1];
}
a[x]=j;
for(i=0;i<11;i++)
{
printf("%4d",a[i]);
}
return 0;
}



3.用数组实现火柴棍等式
#include <stdio.h>
int main()
{
int a,b,c,s[10]={6,2,5,5,4,5,6,3,7,6};
for(a=0;a<=9;a++)
for(b=0;b<=9;b++)
{
c=a+b;
if(s[a]+s[b]+s[c]==12&&c<10)
{
printf("%d+%d=%d
",a,b,c);
}
}
return 0;
}
实验总结:1.数组的下标从零开始。
2.数组能处理大量数据,优化程序。
3.数组一旦创建,不能改变大小。
4.要多方面考虑题目结果,使代码完整。
5.变量对应的关系要搞清楚。
知识点总结:1.数组与循环结构紧密相连,一般情况下,循环变量的值随数组元素的下标变化。
2数组使用时要先定义才能使用,C语言不会对数组下标做越界检查。
3.数组不能被赋值。