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

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

    #include <stdio.h>
    #define N 100
    int main()
    {
        int n=0,grade[N],sum=0,number,i,max,min,find,m;
        double average;
        printf("请输入需要统计的学生个数:");
        scanf("%d",&number);
        for(i=0;i<number;i++)
        {
            printf("请输入第%d名同学的成绩:",i+1);
            scanf("%d",&grade[i]);
            sum+=grade[i];
        }
        average=(double)sum/number;
        printf("平均分为%.3f分
    ",average);
        max=grade[0];
        for(i=0;i<number;i++)
        {
            if(grade[i]>=max)
            {
            max=grade[i];
            m=i+1;
            }
        }
        printf("获得最高分的是第%d名同学,他的分数为%d分
    ",m,max); 
        min=grade[0];
        for(i=0;i<number;i++)
        {
            if(grade[i]<=min)
            {
            min=grade[i];
            m=i+1;
            }
        }
        printf("获得最低分的是第%d名同学,他的分数为%d分
    ",m,min); 
        printf("请输入你要查询的成绩:");
        scanf("%d",&find);
        for(i=0;i<number;i++)
        {
            if(grade[i]==find)
            {
                printf("第%d名",i+1); 
                n++; 
            }
        }
        if(n==0)
        {
            printf("未找到符合条件的同学
    ");
        }
        else
        { 
        printf("同学获得了%d分",find);
        }
        return 0;
     } 

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

    #include<stdio.h> 
    int main() 
    {
        int i,m,x,n[11]={2,3,4,9,10,12,15,44,63,89};
        printf("原数组为:2 3 4 9 10 12 15 44 63 89
    ");
        printf("请输入你要插入的数:");
        scanf("%d",&m);
        if(m>n[9])
        {
        n[10]=m;
        }
        else
        {
            for(i=0;i<10;i++)
            {
                if(m<n[i])
                {
                   x=i;
                   break;
                }        
            }
            for(i=9;i>=x;i--)
            {
               n[i+1]=n[i]; 
            }   
        n[x]=m; 
        } 
        printf("新的数组为:");
        for(i=0;i<=10;i++)
        {
            printf("% d",n[i]);
        }
        return 0;
    }

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

    #include <stdio.h>
    int main()
    {
        int a,b,c;
        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++)
            {
                for(c=0;c<=9;c++)
                {
                if(a+b==c&&match[a]+match[b]+match[c]==12)
                {
                    printf("%d+%d=%d
    ",a,b,c);
                }
                }
            }
        }
        return 0;
     } 

    附加题

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

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

    知识点总结

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

    2数组中的数据在内存中是按顺序依次排列的

    3数组的大小是确定的

    实验总结

    1要时刻注意数据类型,比如附加题中的n[m]中的m定义为char型,所以应该减48

    2记得给数组中的数据初始化,否则数组中的数据将为随机数

    3&&表示并且  ||表示或

                   

  • 相关阅读:
    Shell – Wget 克隆网站
    Tools
    Tools
    Tools
    Ubuntu
    android studio中配置X5 webview时的一个坑
    android studio中Fragment使用webview返回上一页的问题
    android studio中退出时弹出对话框
    android studio中使用x5 webview来读写cookies的问题
    flask blueprint出现的坑
  • 原文地址:https://www.cnblogs.com/UUZsama/p/6091039.html
Copyright © 2011-2022 走看看