• 第八次作业


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

    #include<stdio.h>
    #define N 100
    int main()
    {
        int  score[N] ,i,a,n,sum=0,max,min,I=0,L=0;
        float ave;
        printf("输入学生数为:(n<=100)");
        scanf("%d",&n);
        printf("输入成绩:
    ");
        scanf("%d",&a);
        score[0]=a;
        sum+=a;
        max=score[0];
        min=score[0];
        for(i=1;i<n;i++)
        {
            printf("输入成绩:
    ");
            scanf("%d",&a);
            score[i]=a;
            sum+=a;
            if(score[i]>max)
            {
                max=score[i];
                I=i;
            }
            if(score[i]<min)
            {
                min=score[i];
                L=i;
            }        
        }
        ave=(float)sum/n;
        printf("平均数为%.2f,最高分为%d,是第%d个",ave,max,I+1); 
        for(i=I+1;i<n;i++)
        {
            if(score[i]==max)
            printf(",第%d个 ",i+1);
        }
        printf("
    最低分为%d,是第%d个",min,L+1); 
        for(i=L+1;i<n;i++)
        {
            if(score[i]==min)
            printf(",第%d个 ",i+1);
        }
        printf("
    输入一个查询的成绩:
    ");
        scanf("%d",&a);
        for(i=0;i<n;i++)
        {
            if(score[i]==a)
            {
                printf(" 第%d个 ",i+1);
            }
        }
        return 0;
    }

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

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

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

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

    知识点总结:

    1.数组的特点:数组中的每一个元素都属于同一种数据类型;数组一旦创建,不能改变大小;数组中的元素在内存中是连续依次排列的。

    2.一维数组的引用:数组必须先定义,后使用;只能逐个引用数组元素,不能一次引用整个数组;每个数组元素是一个数组类型的变量。

    3.一维数组的赋值:数组不初始化,其元素值为随机数;只给部分数组元素赋初值,则其后的元素被初始化为0;当全部数组元素赋初值时,可不指定数组长度。

    实验总结:1.数组名【 】,【】中不能为变量

         2.数组下标从0开始

         3.数组离不开循环,让数组里的元素全部输出必须借助循环

         

  • 相关阅读:
    【多线程】工具类汇总
    【JVM】GC日志样例解读
    【Docker】
    XXS level5
    XXS level4
    XXS level3
    XXS level2
    SQLI DUMB SERIES-6
    SQLI DUMB SERIES-5
    XXS level1
  • 原文地址:https://www.cnblogs.com/wjm666/p/6102891.html
Copyright © 2020-2023  润新知