• 第八次作业


    一、实验内容        

    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、插入数组的时候要看清条件,准确找出插入的位置。

  • 相关阅读:
    (网页)中的简单的遮罩层
    (后端)shiro:Wildcard string cannot be null or empty. Make sure permission strings are properly formatted.
    (网页)jQuery的时间datetime控件在AngularJs中使用实例
    Maven Myeclipse 搭建项目
    MyBatis 环境搭建 (一)
    java 常用方法
    XML 基础
    JS BOM
    js 事件
    js 的使用原则
  • 原文地址:https://www.cnblogs.com/chenqiu/p/6087065.html
Copyright © 2020-2023  润新知