第八次作业

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

#include<stdio.h>
#define n 100000
int main()
{
    int a,b,max,min,i=0,score[n],s,sum=0,num=0;
    float average;
    printf("请输入学生的成绩
");
    scanf("%d",&score[i]);
    max=score[i];
    min=score[i];
    while(score[i]>=0)
    {
        sum=sum+score[i];
        if(score[i]>=max)
        {
            max=score[i];
            b=i+1;
        }
        if(score[i]<min)
        {
            min=score[i];
            a=i+1;
        }
        i++;
        printf("请输入学生的成绩
");
        scanf("%d",&score[i]);
    }
    average=(float)sum/i;
    printf("平均值是%.2f最大值是%d第%d个最小值是%d第%d个
",average,max,b,min,a);
    printf("请输入你要查找到同学的成绩
");
    scanf("%d",&s);
    for(i=0;i<n;i++)
    {
        if(score[i]==s)
        {
            num=i+1;
            printf("这是第%d个学生
",num);
        
        }
    }
    return 0;
}

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

#include<stdio.h>
#define N 11
int main()
{
    int num[N]={2,4,6,8,10,12,14,16,18,20};
    int x,m,n;
    printf("请输入你要插入的数
");
    scanf("%d",&x);
    for(n=0;n<N;n++)
    {
        if(x<num[n])
        {
             m=n;
            break;
        }
    }
    for(n=9;n>=m;n--)
    {
        num[n+1]=num[n];
    }
        num[m]=x;
    for(n=0;n<N;n++)
    {
            printf("%3d",num[n]);
    }

    return 0;
}

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

#include<stdio.h>
#define n 10
int main()
{
    
    int i,j,k,x,y,z;
    int gen[n]={6,2,5,5,4,5,6,3,7,6};
    for(i=0;i<10;i++)
    {
        x=gen[i];
        for(j=0;j<10;j++)
        {
            y=gen[j];
            for(k=0;k<10;k++)
            {    
                z=gen[k];
                if(i+j==k&&x+y+z==12)
                {
                    printf("%d+%d=%d
",i,j,k); 
                }
            }
        }
    }
    return 0;    
}

个人总结:

当定义数组时,最好用#define宏定义

要看好下表是什么,用什么来表示

不能越界

实验总结:

每个数组元素是一个数组类型的变量

数组创建后不能改变大小,元素在内存中按顺序排列

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

C语言不会对数组下标做越界检查

原文地址:https://www.cnblogs.com/xuan0826/p/6106792.html