• 第八次作业


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

    # include <stdio.h>
    # define N 100
    int main()
    {
        int score[N],max,max1,min,min1,i,n,sum,search;
        float average;
        n=0;
        max1=1;
        min1=1;
        sum=0;
        printf("请输入成绩(输入数据小于0时将结束输入):
    ");
        scanf("%d",&score[n]);
        do
        {
            sum=sum+score[n];
            if(n==0)
            {
                min=score[n];
                max=score[n];
            }
            else
            {
                if(max<score[n])
                {
                    max=score[n];
                    max1=n+1;
                    
                }
                if(min>score[n])
                {
                    min=score[n];
                    min1=n+1;
                }
            }
            n++;
            printf("请输入成绩(输入数据小于0时将结束输入):
    ");
            scanf(" %d",&score[n]);
        }while(score[n]>=0);
        average=(float)sum/n;
        printf("平均分是%.2f,最高分是%d,该同学是%d号,最低分是%d,该同学是%d号。
    ",average,max,max1,min,min1);
        printf("请输入你想查询的成绩(数据为整数):
    ");
        scanf("%d",&search);
        for(i=0;i<n;i++)
        {
            if(search==score[i])
            { 
                printf("%d号 ",i+1);    
            }
        }
    return 0;    
    }

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

    # include <stdio.h>
    int main()
    {
        int i,j,x,a,b[11]={2,5,7,9,12,16,19,21,26,29};
        printf("请输入一个数字:
    ");
        scanf("%d",&a); 
        for(i=10;i>=0;i--)
        {
            if(a>=b[i-1])
            {
                for(j=10;j>i;j--)
                {
                    b[j]=b[j-1];
                }
                b[i]=a;
                break;
            }
            if(i==0)
            {
                for(j=10;j>i;j--)
                {
                    b[j]=b[j-1];
                }
                b[0]=a;
                break;
            }
        }
        for(x=0;x<=10;x++)
        {
            printf("%d ",b[x]);
        }
    return 0;    
    }

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

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

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

    # include <stdio.h>
    int main()
    {
        int i,x,b[10]={0,0,0,0,0,0,0,0,0,0};
        char a;
        printf("请输入一串数字:
    ");
        do
        {
            scanf("%c",&a);
            x=a-48;
            b[x]++;
        }while(a>='0'&&a<='9');
        for(i=0;i<=9;i++)
        {
            printf("%d个%d,",b[i],i);
        }
    return 0;    
    } 

    知识点总结:

    1.利用a[N],来实现对大量数据的读取;

    2.利用a[N]和循环来从输入的大量数据中提取有用的数据;

    3.利用a[N]来对一些特殊程序进行优化。

    实验总结:

    1.a[N]是从a[0]开始的不是从a[1]开始的;

    2.输入一串数字时用char型变量来读取,不用int;

    3.两个=是等于一个=是赋值。

  • 相关阅读:
    GitLab的基础使用-汉化配置
    GitLab的基础使用-数据备份与恢复
    Apache Hadoop集群扩容实战案例
    Hadoop 集群-完全分布式模式(Fully-Distributed Mode)
    HDFS参数调优总结
    网站压力测试 工具webbench
    2013年十大必知的大数据分析公司
    做电子商务网上开店应该读的书
    教你用大功率路由器覆盖3平方公里的WiFi广告
    中央推进城镇化建设 六行业分享25万亿蛋糕
  • 原文地址:https://www.cnblogs.com/w123/p/6087562.html
Copyright © 2020-2023  润新知