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

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

    #include<stdio.h>
    #define N 100
    int main()
    {
        int a,b=0,c=0,d=0,e,i,score[N],sum=0,max,min;
        double avg;
    
        for(i=0;i<=N;i++)
        {
            printf("请输入学生成绩
    ");
            scanf("%d",&score[i]);
            if(score[i]<0)
            {
                break;
            }
            b++;
        }
        for(i=0;i<b;i++)
        {
            sum+=score[i];
        }
        avg=(double)sum/b;
        max=score[0];
        min=score[0];
        for(i=0;i<b;i++)
        {
            if(score[i]>max)
            {
                max=score[i];
                c=i;
            }
        }
        for(i=0;i<b;i++)
        {
            if(score[i]<min)
            {
                min=score[i];
                d=i;
            }
        }
        printf("平均数为%lf,第%d个学生有最高分为%d,第%d个学生有最低分为%d
    ",avg,c+1,max,d+1,min);
        printf("请输入要查找的学生成绩
    ");
        scanf("%d",&e);
        for(i=0;i<b;i++)
        {
            if(e==score[i])
            {
                printf("这是第%d个学生的成绩
    ",i+1);
            }
        }
        return 0;
    }

    总结:数组要配合循环一块使用。

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

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

    总结:一定要把情况考虑全。

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

    #include<stdio.h>
    #define N 10
    int main()
    {
        int match[10]={6,2,5,5,4,5,6,3,7,6};
        int i,j,k;
        for(i=0;i<10;i++)
        {
            for(j=0;j<10;j++)
            {
                for(k=0;k<10;k++)
                {
                    if(i+j==k&&match[i]+match[j]+match[k]==12)
                    {
                        printf("%d+%d=%d
    ",i,j,k);
                    }
                }
            }
        }
    
        return 0;
    }

    总结:用数组处理这个问题比函数要简单。

    二、知识点总结

    1,数组名不可以赋值。

    2,C语言不会对数组下标做越界检查,编数组一定要认真检查。

    3,数组下标从0开始!!!

    4,对数组数据的访问一定是跟循环结构分不开的,一般情况下,循环变量的值随数组元素的下标变化。

    三、实验总结

    1,要定义数组。

    2,情况要想全,各种分类都要考虑到。

    3,就火柴棍那个题我觉得数组要比函数简单。

  • 相关阅读:
    mysql replace into用法与坑
    MySQL主主复制3
    数据库分库分表sharding1
    70多G的Kindle电子书合集
    Laravel 之Service Providers
    Laravel之Service Container服务容器
    Laravel错误与日志处理
    Laravel系列 目录结构
    Linux环境变量设置指南
    Laravel系列2入门使用
  • 原文地址:https://www.cnblogs.com/web5217/p/6107461.html
Copyright © 2011-2022 走看看