第八次

一、实验内容       

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

#include<stdio.h>
#define N 99999
int main()
{
    int i,n,a,b,c,x,sum,max,min;
    int fen[N];
    double ping;
    printf("请输入一共有多少学生
");
    scanf("%d",&n);
    sum=0;
    for(i=0;i<n;i=i+1)
    {
        printf("请输入成绩
");
        scanf("%d",&fen[i]);
    }
    for(i=0;i<n;i=i+1)
    {
        sum=sum+fen[i];
    }
    ping=(double)sum/n;
    printf("平均分是%.2lf
",ping);
    
    
    max=fen[0];
    for(i=0;i<n;i=i+1)
    {
        if(fen[i]>max)
        {
            max=fen[i];
        }
    }
    for(i=0;i<n;i=i+1)
    {
        if(fen[i]==max)
        {
            a=i+1;
            printf("最高分是%d,是第%d个同学
",max,a);
        }
    }
    
    
    min=fen[0];
    for(i=0;i<n;i=i+1)
    {
        if(fen[i]<min)
        {
            min=fen[i];
        }
    } 
    for(i=0;i<n;i=i+1)
    {
        if(fen[i]==min)
        {
            b=i+1;
            printf("最低分是%d,是第%d个同学
",min,b);
        }
    }
    
    
    printf("输入一个成绩,说明是第几个学生的成绩
");
    scanf("%d",&x);
    for(i=0;i<n;i=i+1)
    {
        if(x==fen[i])
        {
            c=i+1;
            printf("是第%d个学生
",c);
        }
    }
    return 0;    
}

 

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

#include<stdio.h>
int main()
{
    int i,j,x;
    int shu[11]={0,10,20,30,40,50,60,70,80,90};
    printf("现有一列数据:0,10,20,30,40,50,60,70,80,90,输入一个数,将其插入数据中
");
    scanf("%d",&x);
    if(x>=shu[9])
    {
        printf("现在数据为:0,10,20,30,40,50,60,70,80,90,%d",x);
    }
    else
    {
        for(i=0;i<10;i=i+1)
        {
            if(x<shu[i])
            {
                j=i;
                break;
            }
        }
        for(i=10;i>=j;i=i-1)
        {    
            shu[i+1]=shu[i];
        }
        shu[j]=x;
        printf("现在数据为");
        for(i=0;i<11;i=i+1)
        {
            printf("%d ",shu[i]);
        }
    }
    return 0;
}

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

#include<stdio.h>
int main()
{
    int a,b,c,x,y,z;
    int match[10]={6,2,5,5,4,5,6,3,7,6};
    for(a=0;a<10;a=a+1)
    {
        x=match[a];
        for(b=0;b<10;b=b+1)
        {
            y=match[b];
            for(c=0;c<10;c=c+1)
            {    
                z=match[c];
                if(a+b==c&&x+y+z==12)
                {
                    printf("%d+%d=%d
",a,b,c); 
                }
            }
        }
    }
    return 0;    
}

二、知识点总结

1、 数组必须先定义,后使用。

2、只能逐个引用数组元素,不能一次引用整个数组

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

4、数组中的每一个元素都属于一种数据类型

5、数组一旦创建,不能改变大小

6、数组中的元素在内存中是连续依次排列的

三、实验总结

1、数组下标第一个从0开始

2、不会的可以查百度

原文地址:https://www.cnblogs.com/accelerator123/p/6087091.html