• 第八次实验


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

    #include <stdio.h>
    #define N 10000
    int main()
    {
        int a[N],s,d,sum=0,ren,max,min,f=0,g=0,h;
        float average;
        printf("请输入学生人数
    ");
        scanf("%d",&ren);
        for(s=0;s<ren;s++)
        {
            printf("请输入学生的分数:
    ");
            scanf("%d",&a[s]);
        }
        for(s=0;s<ren;s++)
        {
            sum+=a[s];
        }
        average=(float)sum/ren;
        printf("平均分是%f
    ",average);
        max=a[0];
        for(s=0;s<ren;s++)
        {
            if(a[s]>max)
            {
                max=a[s];
                f=s+1;
            }
        }
        printf("成绩最高为%d分,他是第%d个同学
    ",max,f);
        min=a[0];
        for(s=0;s<ren;s++)
        {
            if(a[s]<=min)
            {
                min=a[s];
                g=s+1;
            }
        }
        printf("成绩最低为%d分,他是第%d个同学
    ",min,g);
        printf("请输入一个学生的成绩:
    ");
        scanf("%d",&h);
        for(s=0;s<ren;s++)
        {
            if(h==a[s])
            {
                g=s+1;
                printf("这是第%d个学生的成绩
    ",g);
            }
        }
    
        return 0;
    }

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

    #include <stdio.h>
    #define N 11
    int main()
    {
        int a,groupe[N]={1,3,5,7,9,11,13,15,17,26},s,d,b;
        printf("原数组为:1,3,5,7,9,11,13,15,17,26
    ");
        printf("请输入你要插入的数字:
    ");
        scanf("%d",&a);
        for(s=0;s<N-1;s++)
        {
            if(a<groupe[s])
            {
                d=s;
                break;
            }
        }
        b=N-1;
        for(s=b;s>=d;s--)
        {
            groupe[s+1]=groupe[s];
        }
        groupe[d]=a;
        printf("新的数组为:");
        for(s=0;s<N;s++)
        {
            printf("%d  ",groupe[s]);
        }
        return 0;
    }

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

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

    知识点总结:

    1、为了更改方便,一般在主函数前定义#define N **     这样便于改变N值

    2、数组一般从a【0】开始

    3、int a[0]  a代表数组名(地址常量)

    实验总结:

    1、注意C不会做越界检查

    2、数组名不能被赋初值

  • 相关阅读:
    nignx 配置https
    开发插件
    pdf 转word 网站
    github 镜像站点
    apk 托管
    系统引导原理以及过程
    网络维护-路由与路由的链接
    linux 常用命令
    Linux netsat 命令
    Oracle登录 ORA-01033: ORACLE正在初始化或关闭的解决方法
  • 原文地址:https://www.cnblogs.com/456abc/p/6104034.html
Copyright © 2020-2023  润新知