8

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

#include <stdio.h>
#define N 100000
int main ()
{
    int sum=0,score[N],max,min,a=0,i,b=0,c=0,x;
    double average;
    printf("请输入成绩
");
    for(i=0;i<N;i++)
    {
        scanf("%d",&score[i]);
        if(score[i]<0)
            break;
        else
        {
            a++;
        }

    }
    for(i=0;i<a;i++)
    {
        sum=sum+score[i];
    }
    printf("总值是%d
",sum);
    average=(double)sum/a;
    printf("平均值是%.2f
",average);
    max=score[1];
    for(i=1;i<a;i++)
    {
        if(score[i]>max)
        {
            max=score[i];
            b=i+1;
        }
    }
    printf("最大值是%d,第%d个数
",max,b);
    min=score[0];
        for(i=1;i<a;i++)
    {
        if(score[i]<min)
        {
            min=score[i];
            c=i;
        }
    }
    printf("最小值是%d,第%d个数
",min,c+1);
    printf("请输入成绩
");
        scanf("%d",&x);
    for(i=0;i<=a;i++)
    {
        if(x==score[i])
        {
            printf("这个学生是第%d个
",i+1);
            break;
        }
        
    }
    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("请输入一个数字:
");

    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,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:数组一开始从【0】开始

2:数组与循环一起用可以达到简化程序的作用,省去大量步骤。

3:数组不能被赋值,

实验总结:

1:数组N=【N】的N不是一定的,在for循环中可以换成i

2:数组内插入数字要注意位置问题,再数组中插入,后面的数都的下标都加一。

原文地址:https://www.cnblogs.com/endeavor992/p/6107741.html