• 8


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

    #include <stdio.h>
    #define N 100000
    int main ()
    {
        int sum=0,score[N],max,min,a=0,i,b=0,c=0,x;
        double average;
        printf("请输入成绩
    ");
        for(i=0;i<N;i++)
        {
            scanf("%d",&score[i]);
            if(score[i]<0)
                break;
            else
            {
                a++;
            }
    
        }
        for(i=0;i<a;i++)
        {
            sum=sum+score[i];
        }
        printf("总值是%d
    ",sum);
        average=(double)sum/a;
        printf("平均值是%.2f
    ",average);
        max=score[1];
        for(i=1;i<a;i++)
        {
            if(score[i]>max)
            {
                max=score[i];
                b=i+1;
            }
        }
        printf("最大值是%d,第%d个数
    ",max,b);
        min=score[0];
            for(i=1;i<a;i++)
        {
            if(score[i]<min)
            {
                min=score[i];
                c=i;
            }
        }
        printf("最小值是%d,第%d个数
    ",min,c+1);
        printf("请输入成绩
    ");
            scanf("%d",&x);
        for(i=0;i<=a;i++)
        {
            if(x==score[i])
            {
                printf("这个学生是第%d个
    ",i+1);
                break;
            }
            
        }
        return 0;
    }

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

    #include <stdio.h>
    
    #define N 10
    
    int main()
    
    {
    
        int num[N]={3,6,9,12,16,19,23,26,29},i,j,n,a,b;
    
         
    
        printf("请输入一个数字:
    ");
    
        scanf("%d",&a);
    
        for(i=0;i>=0;i++)
    
        {
    
          if(a<num[i+1])
    
          {
    
            for(j=8;j>i;j--)
    
             
    
            {
    
              num[j+1]=num[j];
    
            }
    
              num[i+1]=a;
    
              break;
    
            }
    
          }
    
        for(i=0;i<N;i++)
    
        printf("%4d",num[i]);
    
        return 0;
    
    }

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

    #include <stdio.h>
    
    int main()
    
    {
    
    int a,b,c,s[10]={6,2,5,5,4,5,6,3,7,6};
    
    for(a=0;a<=9;a++)
    
    for(b=0;b<=9;b++)
    
    {
    
    c=a+b;
    
    if(s[a]+s[b]+s[c]==12&&c<10)
    
    {
    
    printf("%d+%d=%d
    ",a,b,c);
    
    }
    
    }
    
    return 0;
    
    }

    知识点总结;

    1:数组一开始从【0】开始

    2:数组与循环一起用可以达到简化程序的作用,省去大量步骤。

    3:数组不能被赋值,

    实验总结:

    1:数组N=【N】的N不是一定的,在for循环中可以换成i

    2:数组内插入数字要注意位置问题,再数组中插入,后面的数都的下标都加一。

  • 相关阅读:
    软件设计文档
    java基础路线与详细知识点
    hdu 2203 亲和串 kmp
    UVALive 6915 J
    UVALive 6911 F
    UVALive 6906 A
    hdu 3746 Cyclic Nacklace KMP
    hdu 1686 Oulipo kmp算法
    hdu1711 Number Sequence kmp应用
    hdu4749 kmp应用
  • 原文地址:https://www.cnblogs.com/endeavor992/p/6107741.html
Copyright © 2020-2023  润新知