• 第八次作业


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

    #include <stdio.h>
    #define N 100
    int main()
    {
        int score[N],sum,i,max,min,num,n,a,ren;
        double average;
        printf("输入人数:
    ");
        scanf("%d",&ren);
        for(i=0;i<ren;i++)
        {
            printf("请输入第%d个人的成绩:
    ",i+1);
            scanf("%d",&score[i]);
        }
        sum=0;
        for(i=0;i<ren;i++)
        {
            sum+=score[i];
        }
        average=(double)sum/ren;
        printf("这%d个人的平均成绩为%.2lf
    ",ren,average);
        max=score[0];
        for(i=0;i<ren;i++)
        {
            if(max<=score[i])
            {
                max=score[i];
                num=i+1;
            }
        }
        printf("最大值为%d,是第%d人
    ",max,num);
        min=score[0];
        for(i=0;i<ren;i++)
        {
            if(min>=score[i])
            {
                min=score[i];
                num=i+1;
            }
        }
        printf("最小值为%d,是第%d人
    ",min,num);
        printf("请输入某人的成绩:
    ");
        scanf("%d",&a);
        for(i=0;i<ren;i++)
        {
            if(a==score[i])
            {
                num=i+1;
                printf("这是第%d人
    ",num);
                break;
            }
        }
        if(a!=score[i])
            {
                printf("输入错误
    ");
            }
        return 0;
    }

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

    #include<stdio.h>
    #define N 11
    int main()
    {
        int num[N]={2,4,6,8,10,12,14,16,18,20},a,b,i;
        printf("请输入一个数:
    ");
        scanf("%d",&a);
        for(i=0;i<N;i++)
        {
            if(a<=num[i]&&a>=num[i-1])
            {
                b=i;
                break;
            }
            else if(a>num[9])
            {
                b=i;
            }
        }
        for(i=N-1;i>b;i--)
        {
            num[i]=num[i-1];
        }
        num[i]=a;
        for(i=0;i<N;i++)
        {
            printf("%d ",num[i]);
        }
        return 0;
    }

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

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

    附加题

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

    #include<stdio.h>
    int main()
    {
        int num[10]={0},i;
        char c;
        printf("请输入一串数字:
    ");
        while(c!='
    ')
        {
            scanf("%c",&c);
            num[c-'0']++;
        }
        for(i=0;i<10;i++)
        {
            printf("数字 %d 出现了%d次
    ",i,num[i]);
        } 
        return 0;
    }

    二.知识点总结

    1.数组定义方式 :数据类型 数组名【常量表达式】(int a[10]);

    2.数组必须先定义 后使用;

    3.数组中下标从0开始,引用时下表可以是int型变量或者表达式;

    4.数组定义后若对数组进行动态赋值,可用循环来实现;

    5.标明数组中的数int num[5]={1,23,4,5,}

    三.实验总结

    1.附加题用到了ascll值 要知道数字0是从48开始的 只有0-9  附加题那还可以写成num[i-48];

    2.第二题比较难 不好想 应该多讨论一下也可以问问别人 弄懂就行;

    3.开始编的时候会打一串变量,最好最后把多余的变量删了(程序是检测不出来的);

  • 相关阅读:
    Mongo Windows 基本使用入门
    ASP.NET Web API 使用Swagger使用笔记
    Smtp协议与Pop3协议的简单实现
    详解boost库中的Message Queue .
    Bencode编码解析的C++实现
    pugixml使用教程
    在QT中使用Irrlicht引擎的方法与步骤
    七大查找算法
    java保留小数点两位的4种方法
    [Node] nvm 安装 node 和 npm
  • 原文地址:https://www.cnblogs.com/zj1220/p/6102965.html
Copyright © 2020-2023  润新知