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

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

    #include<stdio.h>
    #define n 100000
    int main()
    {
        int a,b,max,min,i=0,score[n],s,sum=0,num=0;
        float average;
        printf("请输入学生的成绩
    ");
        scanf("%d",&score[i]);
        max=score[i];
        min=score[i];
        while(score[i]>=0)
        {
            sum=sum+score[i];
            if(score[i]>=max)
            {
                max=score[i];
                b=i+1;
            }
            if(score[i]<min)
            {
                min=score[i];
                a=i+1;
            }
            i++;
            printf("请输入学生的成绩
    ");
            scanf("%d",&score[i]);
        }
        average=(float)sum/i;
        printf("平均值是%.2f最大值是%d第%d个最小值是%d第%d个
    ",average,max,b,min,a);
        printf("请输入你要查找到同学的成绩
    ");
        scanf("%d",&s);
        for(i=0;i<n;i++)
        {
            if(score[i]==s)
            {
                num=i+1;
                printf("这是第%d个学生
    ",num);
            
            }
        }
        return 0;
    }

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

    #include<stdio.h>
    #define N 11
    int main()
    {
        int num[N]={2,4,6,8,10,12,14,16,18,20};
        int x,m,n;
        printf("请输入你要插入的数
    ");
        scanf("%d",&x);
        for(n=0;n<N;n++)
        {
            if(x<num[n])
            {
                 m=n;
                break;
            }
        }
        for(n=9;n>=m;n--)
        {
            num[n+1]=num[n];
        }
            num[m]=x;
        for(n=0;n<N;n++)
        {
                printf("%3d",num[n]);
        }
    
        return 0;
    }

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

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

    个人总结:

    当定义数组时,最好用#define宏定义

    要看好下表是什么,用什么来表示

    不能越界

    实验总结:

    每个数组元素是一个数组类型的变量

    数组创建后不能改变大小,元素在内存中按顺序排列

    数组不初始化,其元素值为随机数。

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

  • 相关阅读:
    不同数据类型的取值范围
    反正切函数求圆周率 atan
    HDOJ 1106
    HDOJ 1596
    HDOJ 1026 dfs路径保存
    qsort用法总结
    HDOJ 2088
    HDOJ 1878 欧拉回路 nyoj 42一笔画问题
    HDOJ 1863 prim算法 HDOJ 1879
    HDOj 1010 DFS优化
  • 原文地址:https://www.cnblogs.com/xuan0826/p/6106792.html
Copyright © 2011-2022 走看看