• 第八次作业


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

    #include<stdio.h>
    #define N 100
    int main()
    {
    double average;
    int score[N],i,sum,max,index1,min,index2,index3,n,grade,a;
    printf("请输入学生人数
    ");
    scanf("%d",&a); 
    sum=0;
    for(i=0;i<a;i++)
    {
    printf("请输入学生成绩
    ");
    scanf("%d",&score[i]);
    if(score[i]<=0)
    {
    break;
    }
    sum+=score[i];
    }
    average=(double)sum/a;
    printf("average=%.2lf
    ",average);
    max=score[0];
    index1=0;
    for(i=0;i<a;i++)
    {
    if(score[i]>max)
    {
    max=score[i];
    index1=i+1;
    }
    }
    printf("max=%d,index1=%d
    ",max,index1);
    min=score[0];
    index2=0;
    for(i=0;i<a;i++)
    {
    if(score[i]<min)
    {
    min=score[i];
    index2=i+1;
    }
    }    
    printf("min=%d,index2=%d
    ",min,index2);
    printf("请输入一个人的成绩");
    scanf("%d",&grade);
    n=0;
    for(i=0;i<a;i++)
    {
    if(grade==score[i])
    {
    printf("index=%d
    ",i+1);
    break;
    }
    }
    return 0;
    }

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

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

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

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

    实验总结:第一题,用负数结束开始不知道怎么结束,想了很久,问了问别人才知道让成绩小于0然后break就可以了。很多点其实特别简单,是自己把它想的太复杂化了。问题可以简单的处理。然后第二题的插入,也是开始做总是替换后面的值,后来看了看别人的程序,才发现自己的问题。然后第三个火柴棍做过很多次了,但是每一次做都有新的发现,可能是因为做的方法不一样,所以程序理解的还是不够透彻不然也不会觉得很新。总之程序千篇一律,要把握住规律技巧和方法才能写对写好。

    知识点总结:1.一般在主函数前定义#define N[*],便于改变N值。

    2.定义的元素要记得赋初值。

    3.数组必须先定义然后再使用。

  • 相关阅读:
    c++ 析构函数
    define 全局变量 extern
    C 与 python 的随机数
    WinMain function can not be oveloaderd
    宽字符编码与多字节编码
    windows 静态库 与 动态库
    extern C 语言中
    ubuntu 修改分辨率 , 虚拟机中的ubuntu联网
    main(int argv, char* argc[])
    数字分隔符,三位一个逗号
  • 原文地址:https://www.cnblogs.com/gangfeng/p/6107778.html
Copyright © 2020-2023  润新知