首页 > 代码库 > 第八次作业

第八次作业

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

#include <stdio.h>
#define N 100
int main()
{
    int xs[N],sum=0,zd,zx,i=0,izd=1,izx=1,x,y;
    float pjf;
    printf("请输入学生成绩,输入负数时为结束\n");
    scanf("%d",&xs[i]);
    zd=xs[0];
    zx=xs[0];
    while(xs[i]>=0)
    {
        sum+=xs[i];
        if(xs[i]>zd)
        {
            zd=xs[i];
            izd=i+1;
        }
        if(xs[i]<zx)
        {
            zx=xs[i];
            izx=i+1;
        }
        i++;
        printf("请输入学生成绩,输入负数时为结束\n");
        scanf("%d",&xs[i]);
    }
    pjf=(float)sum/i;
    printf("平均分为%f,最高分为%d,序号为%d;最低分为%d,序号为%d\n",pjf,zd,izd,zx,izx);
    printf("输入学生成绩查找序号。\n");
    scanf("%d",&x);
    for(y=0;y<=i;y++)
    {
        if(x==xs[y])
        {
            y=y+1;
            printf("序号为%d",y);
        }
        else
        {
            printf("*");
        }
    }
    return 0;
}

技术分享

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

#include <stdio.h>
int main()
{
    int a[11]={1,3,5,7,9,11,13,15,17,19},x,i,y;
    printf("1,3,5,7,9,11,13,15,17,19\n输入一个数,插入数列中\n");
    scanf("%d",&x);
    for(i=0;i<=10;i++)
    {
         if(a[i]>x)
        {
            y=i;
            break;
        }
        else
        {
            y=10;
        }
    }
    for(i=10;i>y;i--)
    {
        a[i]=a[i-1];
    }
    a[y]=x;
    printf("%d %d %d %d %d %d %d %d %d %d %d",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10]);
    return 0;
}

技术分享

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

#include<stdio.h>
int main()
{
    int hc[10]={6,2,5,5,4,5,6,3,7,6},x,y,z,sum;
    for(x=0;x<=9;x++)
        for(y=0;y<=9;y++)
        {
            z=x+y;
            if(z>9)
                break;
            sum=hc[x]+hc[y]+hc[z];
            if(sum==12)
                printf("%d+%d=%d\n",x,y,z);
        }
    return 0;
}

技术分享

知识点总结

1,数组后面的括号内的数不能是变量。

2,数组的数的个数不能超过设定的数。

实验总结

1,先是从数组**[0] 开始储存数的。

2,设定数组时的“【*】”内的数与储存数组的“【*】”内的数的意义不同。

第八次作业