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

第八次作业

实验一:

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

#include<stdio.h>
int main()
{
    int max,min,n,i,sum,grade[100],grade1,a=0,b=0,c,d=0;
    double average;
    printf("请输入您要输入学生成绩的个数:\n");
    scanf("%d",&n); 
    for(i=0;i<n;i++)
    {
        printf("请输入学生成绩:\n");
        scanf("%d",&grade[i]);
        sum=sum+grade[i];
    }
    average=(double)sum/n;
    printf("这%d名同学的平均分数为:%1.2lf\n",n,average);
    max=grade[0];
    min=grade[0];
    for(i=0;i<n;i++)
    {
        if(max<grade[i])
        {
            max=grade[i];
        }
        if(min>grade[i])
        {
            min=grade[i];
        }
    }
    for(i=0;i<n;i++)
    {
        if(max==grade[i])
        {
            printf("最高分有第%d位同学\n",i+1);
        }
        if(min==grade[i])
        {
            printf("最底分有第%d位同学\n",i+1);
        }
    }
    printf("请输入您想查询的成绩:\n");
    scanf("%d",&grade1);
    for(i=0;i<n;i++)
    {
        if(grade1==grade[i])
        {
            c=i;
            printf("成绩为%d的有第%d位同学\n",grade1,c+1); 
            d++;
        }
    }
    printf("最高分是%d,最低分数是%d,分数为%d的同学有%d位",max,min,grade1,d);
    return 0;
 } 

技术分享

实验二:

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

实验三:

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

#include<stdio.h>
int main()
{
    int a,b,c,sum,gen[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(c>9)
            {
                break;
            }
            sum=gen[a]+gen[b]+gen[c];
            if(sum==12)
            {
                printf("%d+%d=%d\n",a,b,c);
            }
        }
    }
    return 0;
 } 

技术分享

附加题:

    输入一行任意长的数字,用数组元素作为计数器统计每个数字出现的次数。用下标为0的元素统计0出现的次数,用下标为1的元素统计1出现的次数…

int main()
{
    int number[10]={0},i;
    char number1;
    printf("请输入任意一串数字");
    scanf("%c",&number1);
    while(number1!=\n)
    {
        switch(number1)
        {
            case 0:number[0]++;break;
            case 1:number[1]++;break;
            case 2:number[2]++;break;
            case 3:number[3]++;break;
            case 4:number[4]++;break;
            case 5:number[5]++;break;
            case 6:number[6]++;break;
            case 7:number[7]++;break;
            case 8:number[8]++;break;
            case 9:number[9]++;break;
        }
        scanf("%c",&number1);
    }
    for(i=0;i<=9;i++)
    {
        printf("数字%d出现啦%d次\n",i,number[i]);
    }
    return 0;
}

技术分享

 

实验总结:
1  数组必须先定义后使用;

2  要注意数组的下标是从零开始的;

3  c语言中数组的越位系统不会提示错误,当发生越位后有可能会吧重要内容覆盖,因此一定不要让数组下标越位;

4  确定数组长度用[],赋值用{};

5  当用switch时如果括号里是字符型的,在下面的语句要带上单引号;

 

第八次作业