作业,8

1.输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩。

复制代码

#include<stdio.h>
#define N 10000
int main()
{
  int fs[N],xs,sum,zs,i,max,min,a,b,c,d;
  double pjf;
  printf("输入学生的总数 ");
  scanf("%d",&zs);
  printf("输入学生的分数 ");
  for(i=1,sum=0;i<=zs;i++)
  {
    scanf("%d",&fs[i]);
    sum+=fs[i];
  }
  for(max=fs[1],i=1;i<=zs;i++)
  {
    if(max<fs[i])
    {
      max=fs[i];
      a=i;
    }
  }
  for(min=fs[1],i=1;i<=zs;i++)
  {
  if(min>fs[i])
  {
    min=fs[i];
    b=i;
  }
}
pjf=(double)sum/zs;
printf("平均分是%.2f,最高分是%d,是同学%d,最低分是%d,是同学%d ",pjf,max,min,a,b);
printf("再次输入一个分数 ");
scanf("%d",&c);

for(i=0;i<=zs;i++)
{
  if(c==fs[i])
  {
    printf("是学生%d ",i);
    d=2;
  }
}
if(d!=2)
{
  printf("没有学生是这个成绩");
}
}

复制代码

  2.现有一个有序正整数数组(从小到大排序),输入一个数,插入到数组中,要求插入后的数组仍然有序。对插入到最前、最后、中间位置三种情况进行验证。

复制代码

#include<stdio.h>
#define N 11
int main()
{
int sz[N]={1,3,5,7,9,11,13,15,17,19},i,a;
printf("1,3,5,7,9,11,13,15,17,19 输入一个数字,插入在上述数字之内 ");
scanf("%d",&a);
if(a<1)
{
for(i=11;i>-1;i--)
{
sz[i+1]=sz[i];
}
sz[0]=a;
}
else if(a>19)
{
sz[10]=a;
}
else
{
for(i=9;i>=(a/2);i--)
{
sz[(i)+1]=sz[i];
}
sz[a/2]=a;
}
for(i=0;i<=10;i++)
{
printf("%d ",sz[i]);
}
}

3.用数组实现火柴棍等式

复制代码

#include<stdio.h>
#define N 10
int main()
{
int gun[N]={6,2,5,5,4,5,6,3,7,6},i,j,h;
for(i=0;i<=9;i++)
for(j=0;j<=9;j++)
for(h=0;h<=9;h++)
{
if((j+i==h)&&(gun[j]+gun[i]+gun[h]==12))
{
printf("%d+%d=%d ",i,j,h);
}
}
}

总结

1,数组不能初始化,其元素值为随机数。

2,数组的下标是从0开始的

原文地址:https://www.cnblogs.com/szy-65517610/p/6107441.html