• 第八次作业


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

    #include<stdio.h>
    #define N 100
    int main()
    {
        int score[N],i,n,grade,index2,index1,m=0;
        double ave,max,min,sum;    
        for(i=0;i<N;i++)
        {
            printf("请输入学生的成绩");
            scanf("%d",&score[i]);
            if(score[i]==-1)
            {
                break;
            }    
            m++;
        }
        sum=0;
        for(i=0;i<m;i++)
        {
            sum+=score[i];
            ave=sum/(double)m;
        }
        printf("平均数为%.2lf
    ",ave);
        //最大最小值
        max=score[0];
        index1=0; 
        for(i=0;i<=m;i++)
        {
            if(score[i]>max)
            {
                index1=i;
                max=score[i];
            }
        }
        printf("最大值为%.2lf,是第%d位同学
    ",max,index1+1);
        min=score[0];
        index2=0;
        for(i=0;i<m;i++)
        {
            if(score[i]<min)
            {
                index2=i;
                min=score[i];
            }
        }
        printf("最小值为%.2lf,是第%d位同学
    ",min,index2+1);
        //查找 
        printf("请输入你想找的分数
    ");
        scanf("%d",&grade);
        for(i=0;i<m;i++)
        {
            if(grade==score[i])
            {
                printf("你想找的分数在%d位
    ",i+1);
            }
        }
        return 0;
    }

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

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

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

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

    二、知识点总结

        (1)数组的定义:定义方式:数据类型  数据名【数据长度】

        (2)数组必须先定义,后使用

        (3)C语言不会对数组下标做越界检查

        (4)数组名不能被赋值

        (5)  数组名【下标】   下标从0开始

        (6)  数组一旦创建,不能改变大小

        (7)  数组中的元素在内存中是连续一次排列的

        (8)  下标不仅可以是一个常数、变量,还可以是一个表达式。

    三、实验总结

         (1)  a[N]是从0开始的不是从1开始的

         (2) 插入数据时,要先把位置空出来,将后面的数依次往后挪。

         (3)  忘记赋初值

  • 相关阅读:
    c# 日期函数DateTime.ToString()日期的各种格式 (本人亲测)
    C# Excel导入、导出【源码下载】
    微信支付服务器CA证书更换服务器安装der证书的方法 DigiCert的根证书
    重置winsock目录解决不能上网的问题
    模型验证组件 FluentValidation
    对于“Newtonsoft.Json”已拥有为“NETStander.Library”定义的依赖项,解决办法
    .NET平台开源项目速览(6)FluentValidation验证组件介绍与入门(一)
    C# 中参数验证方式的演变
    一步一步ITextSharp 低级操作函数使用
    Winform 打印PDF顺序混乱,获取打印队列
  • 原文地址:https://www.cnblogs.com/faner10110/p/6091409.html
Copyright © 2020-2023  润新知