zoukankan      html  css  js  c++  java
  • 第八次作业

    一、实验内容        

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

    代码:

    #include<stdio.h>
    #define N 100
    int main()
    {
        int n,score[N],i,sum,max,min,index,a;
        double average;
        printf("请输入学生的人数
    ");
        scanf("%d",&n);
        printf("input the score:
    ");
        sum=0;
        //平均分 
        for(i=0;i<n;i++)
        {
            scanf("%d",&score[i]);
            sum=sum+score[i];
        }
        average=(double)sum/n;
        printf("average=%.2lf
    ",average);
        //最高分
        max=score[0];
        index=0;
        for(i=0;i<n;i++)
        {
            if(score[i]>max)
            {
                max=score[i];
                index=i;
            }
         } 
        printf("max=%d,index=%d
    ",max,index);
        //最低分
         min=score[0];
        index=0;
        for(i=0;i<n;i++)
        {
            if(score[i]<min)
            {
                min=score[i];
                index=i;
            }
         } 
        printf("min=%d,index=%d
    ",min,index);
        //查找 
        printf("input the score you want to find:
    ");
        scanf("%d",&a);
        index=0;
        for(i=0;i<n;i++)
        {
            if(a==score[i])
            {
                index=i+1;
                  printf("这是第%d个学生的成绩
    ",index);
            }
        }
        return 0;
     }

    程序运行结果:

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

    代码:

    #include<stdio.h>
    int main()
    {
        int number[11]={1,3,5,7,9,11,13,15,17,19},i,a,m;
        for(i=0;i<=10;i++)
        {
            printf("%d	",number[i]);
            if(i==9)
            {
                break;
            }
        }
        printf("
    请输入一个数,有序插入到这组数字中
    ");
        scanf("%d",&a);
        for(i=0;i<=10;i++)
        {
                if(a<number[0])
                {
                    for(m=10;m>=0;m--)
                    {
                        number[m]=number[m-1];
                        if(m==0)
                        {
                            break;
                        }
                    }
                    number[0]=a;
                }
                
                else if(a>number[i]&&a<=number[i+1])
                {
                    for(m=10;m>=0;m--)
                    {
                        number[m]=number[m-1];
                        if(m<=i+1)
                        {
                            break;
                        }
                    }
                    number[i+1]=a;
                }
                else if(a>number[9])
                {
                    number[10]=a;
                }
        }
        for(i=0;i<=10;i++)
        {
            printf("%d	",number[i]);
        }
        return 0;
     } 

    程序运行结果:

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

    代码:

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

    程序运行结果:

    附加题

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

    代码:

    #include<stdio.h>
    int main()
    {
        int number[10]={0,0,0,0,0,0,0,0,0,0},i;
        char x;
        printf("输入一组数字,计算每个数字出现的次数
    ");
        while(x!='
    ')
        {
            scanf("%c",&x);
            switch(x)
            {
                case '0':number[0]++;break;
                case '1':number[1]++;break;
                case '2':number[2]++;break;
                case '3':number[3]++;break;
                case '4':number[4]++;break;
                case '5':number[5]++;break;
                case '6':number[6]++;break;
                case '7':number[7]++;break;
                case '8':number[8]++;break;
                case '9':number[9]++;break;
            }
        }
        for(i=0;i<=9;i++)
        {
            printf("%d 出现 %d 次
    ",i,number[i]); 
        }
        return 0;
     } 

    程序运行结果:

     二、知识点总结

    1、数组的下标是从0开始的。

    2、数组不初始化,其元素值为随机数。

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

    4、只给部分数组元素赋初值,则其后的元素被初始化为0

    5、C语言不会对数组下标做越界检查,所以元素数应该小于等于数组长度。

     三、实验总结(实验中遇到的问题及解决方法) 

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

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

    3、插入数组的时候要看清条件,准确找出插入的位置。

  • 相关阅读:
    React 生命周期
    React 总结
    系统后台设置
    数据库的事务日志已满,起因为"LOG_BACKUP"。
    webpack 打包器
    地图API
    ES6 与 React
    前端流行的技术
    Javascript 函数声明、函数表达式与匿名函数自执行表达式
    Javascript 解读与思想
  • 原文地址:https://www.cnblogs.com/chenqiu/p/6087065.html
Copyright © 2011-2022 走看看