• 第八次作业


    这不是占坑:这不是占坑:这不是占坑:重要的事情说三遍!!!

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

    # include<stdio.h>
    # define N 9999
    int main()
    {
        int a,b,d,i,sum=0,max,min,m=0,e=0;
        double average;
        int sore[N];
        printf("请输入人数
    ");
        scanf("%d",&b);
        for(i=0;i<b;i++)
        {
            printf("输入学生成绩
    ");
            scanf("%d",&sore[i]);
            sum=sum+sore[i];
        }
        average=(double)sum/b;
        printf("平均数为%.2f
    ",average);
        max=sore[0];
         min=sore[0];
        for(i=0;i<b;i++)
        {
            
            if(sore[i]>=max)
            {
                e=i+1;
            }
        }
            for(i=0;i<b;i++)
            {
            if(min>=sore[i])
            {
                m=i+1;
            }
        }
        printf("最大分数的学生为%d
    ",e);
        printf("最小分数的学生为%d
    ",m);
        printf("输入一个分数,输出他是谁
    ");
                scanf("%d",&d);
            for(i=0;i<b;i++)
           {
             
              if(sore[i]==d)
            {
                printf("他是%d
    ",i+1);
                break;
            }
         } 
         return 0;
     } 

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

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

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

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

    附加题

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

     

    # include<stdio.h>
    int main()
    {
        int a,b,shu[10]={0};
        char e;
        printf("输入一串数
    ");
        do{
                scanf("%c",&e);
                b=e-48;
                shu[b]++;
         }while(e!='
    ');
        for(a=0;a<10;a++)
            {
              printf("这个数%d,共有%d个
    ",a,shu[a]);
            }
            return 0;
     }

    知识点总结:

    1.数组和变量一样应该先定义后使用,数组和变量一样有整型,字符型,浮点型等,使用数组需要定义一个数组名和数组元素的个数,

    2.数组必须遵循标识符命名规则,数组是有顺序的,有数组的下标变量,从零开始       格式数组名[下标]

    3.有数组就有循环, 不赋值的数组为随机数, #define符号常量可以在开始应用,

    4.常量变达式用方括号括起来,注意下标不要越界,

    实验总结:

    1.附加题不会瞄了一眼,

    2.对于有些题看见是就是一脸懵连思路都没有,没办法,有的时候只能放下,过一段时间说不定会有新思路,

    3.第一题运行不来时返回去检查居然发现

    scanf("%d",&sore[i]);这里写错了,非常简单的错误,找了半天才看见,
    4.在第二题中数组退一位想半天才想出来,在草稿纸上写了半天,
  • 相关阅读:
    git clone 慢,使用镜像
    Mysql 插入 path 插入不进去值
    os.walk 获取文件夹下所有的文件
    Manjaro安装后你需要这样做(仅有网址)
    Mysql 查询优化
    pandas df.to_csv 可保存为 txt 类型 index 设置索引 header 列名 sep 使用什么进行分隔
    pandas pd.to_markdown() 转换为 Markdown pd.to_latex() 转换为 latex
    pandas 读取txt seq分隔符类型 engine指定引擎 header 不将第一行作为列名
    pandas 读取文件时 header设置列名 index_col 设置索引 usecols 读取哪几列 parse_dates 将哪一列设置为时间类型 nrows 读取数据行数
    numpy cumprod 累乘 cumsum 累加 diff 和前一个元素做差值
  • 原文地址:https://www.cnblogs.com/saber114567/p/6086924.html
Copyright © 2020-2023  润新知