第八次实验

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

#include <stdio.h>
#define N 10000
int main()
{
    int a[N],s,d,sum=0,ren,max,min,f=0,g=0,h;
    float average;
    printf("请输入学生人数\n");
    scanf("%d",&ren);
    for(s=0;s<ren;s++)
    {
        printf("请输入学生的分数:\n");
        scanf("%d",&a[s]);
    }
    for(s=0;s<ren;s++)
    {
        sum+=a[s];
    }
    average=(float)sum/ren;
    printf("平均分是%f\n",average);
    max=a[0];
    for(s=0;s<ren;s++)
    {
        if(a[s]>max)
        {
            max=a[s];
            f=s+1;
        }
    }
    printf("成绩最高为%d分,他是第%d个同学\n",max,f);
    min=a[0];
    for(s=0;s<ren;s++)
    {
        if(a[s]<=min)
        {
            min=a[s];
            g=s+1;
        }
    }
    printf("成绩最低为%d分,他是第%d个同学\n",min,g);
    printf("请输入一个学生的成绩:\n");
    scanf("%d",&h);
    for(s=0;s<ren;s++)
    {
        if(h==a[s])
        {
            g=s+1;
            printf("这是第%d个学生的成绩\n",g);
        }
    }

    return 0;
}

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

#include <stdio.h>
#define N 11
int main()
{
    int a,groupe[N]={1,3,5,7,9,11,13,15,17,26},s,d,b;
    printf("原数组为:1,3,5,7,9,11,13,15,17,26\n");
    printf("请输入你要插入的数字:\n");
    scanf("%d",&a);
    for(s=0;s<N-1;s++)
    {
        if(a<groupe[s])
        {
            d=s;
            break;
        }
    }
    b=N-1;
    for(s=b;s>=d;s--)
    {
        groupe[s+1]=groupe[s];
    }
    groupe[d]=a;
    printf("新的数组为:");
    for(s=0;s<N;s++)
    {
        printf("%d  ",groupe[s]);
    }
    return 0;
}

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

#include <stdio.h>
int main()
{
    int a,s,d,match[10]={6,2,5,5,4,5,6,3,7,6};
    {
        for(a=0;a<=9;a++)
        {
            for(s=0;s<=9;s++)
            {
                for(d=0;d<=9;d++)
                {
                    if(match[a]+match[s]+match[d]==12&&a+s==d)
                    {
                        printf("%d+%d=%d\n",a,s,d);
                    }
                }
            }
        }
    }
    return 0;
}

知识点总结:

1、为了更改方便,一般在主函数前定义#define N **     这样便于改变N值

2、数组一般从a【0】开始

3、int a[0]  a代表数组名(地址常量)

 

实验总结:

1、注意C不会做越界检查

2、数组名不能被赋初值

posted @ 2016-11-26 13:35  丁啸宇  阅读(160)  评论(1编辑  收藏  举报