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

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

    #include<stdio.h>
    #define N 100
    int main()
    {
        double score[N],sum=0,average=0,max,min,num;
        int i,n;
        printf("请输入有多少人?
    ");
        scanf("%d",&n);
        for(i=0;i<n;i++)
        {
            printf("请输入学生成绩:
    ");
            scanf("%lf",&score[i]);
        }
        for(i=0;i<n;i++)
        {
            sum+=score[i];
        }
        average=sum/n;
        printf("平均成绩是:%.2lf
    ",average);
        max=score[0];
        for(i=0;i<n;i++)
        {
            
            if(max<score[i])
            {
                max=score[i];
            }
        }
        printf("最大值为:%.2lf
    ",max);
        min=score[0];    
        for(i=0;i<n;i++)
        {
            
            if(min>score[i])
            {
                min=score[i];
            }
        }
        printf("最小值为:%.2lf
    ",min);
        printf("请输入需要查找的成绩:
    ");
        scanf("%lf",&num);
        for(i=0;i<n;i++)
        {
            if(score[i]==num)
            {
                printf("查找到的成绩为%.2lf的是第%d个
    ",num,i+1);
            }
        }
        return 0;
    }

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

    #include<stdio.h>
    #include<stdlib.h>
    #define N 6
    int main()
    {
        int series[N]={2,4,6,8,10},number,i,ii;
        for(i=0;i<N-1;i++)//输出已有数列
        {
            printf("%d ",series[i]);
        }
        printf("请输入您要插入的数字:
    ");
        scanf("%d",&number);
        if(number>series[4])
        {
            series[5]=number;
            for(i=0;i<6;i++)
            {
                printf("%d ",series[i]);
            }
            exit(0);
        }
        else if(number<series[4]&&number>series[0]) 
        {
            for(i=4;i>=0;i--)
            {
                if(number>=series[i])
                {
                    for(ii=N-2;ii>=i+1;ii--)
                    {
                        series[ii+1]=series[ii];
                    }
                    series[i+1]=number;
                    for(i=0;i<6;i++)
                    {
                        printf("%d ",series[i]);
                    }
                    break;
                }
            }    
        }
        else
        { 
            for(i=4;i>=0;i--)
            {
                series[i+1]=series[i];
            }
            series[0]=number;
            for(i=0;i<6;i++)
            {
                printf("%d ",series[i]);
            }
        
        } 
        return 0;
    }

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

    #include<stdio.h>
    #define N 10
    int main()
    {
        int i,a,b,c;
        int vary[N]={6,2,5,5,4,5,6,3,7,6};
        for(a=0;a<9;a++)
        for(b=0;b<9;b++)
        {
            if(a+b>9)
            {
                break;
            }
            else
            {
                c=a+b;
                if(vary[a]+vary[b]+vary[c]==12)
                { 
                    printf("%d+%d=%d
    ",a,b,c);
                }
            }
        }
    /*    if(vary[a]+vary[b]+vary[c]==12)
        {
            printf("%d+%d=%d",a,b,c);
        }*/
        return 0;
    }

    实验总结:1.第二个代码本来的想法很简单,但用代码实现就变得很麻烦。

    2.火柴棍问题中的break可以替换成continue。

    知识点总结:1 .只给部分数组元素赋初值,则其后的元素被初始化为0.

    2.当全部数组元素赋初值时,可以不指定数组长度。

    3.数组不初始化,其数组内的元素为随机值。

    4.数组往往与循环相连。

    5.数组下标从零开始最大到九,并允许快速访问。

  • 相关阅读:
    拓扑排序
    最少硬币问题(无穷硬币)
    第三届蓝桥杯预赛
    矩形嵌套
    《心术》影评
    区间选点问题
    [转贴] 游戏服务器架构
    D3DXPlaneFromPoints 函数
    内存池实现
    [转]MMORPG游戏服务器端的设计
  • 原文地址:https://www.cnblogs.com/lmlmlm/p/6106885.html
Copyright © 2011-2022 走看看