第八次作业

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

# include<stdio.h>
# define N 100
int main()
{
    int i,a,b,c,d,e,sum,max,min;
    double average;
    int score[N];
    printf("请输入学生的人数\n");
    scanf("%d",&a);
    b=0;
    c=0;
    d=0;
    e=0;
    sum=0;
    for(i=0;i<a;i++)
    {
        printf("请输入学生的成绩\n");
        scanf("%d",&score[i]);
        sum=sum+score[i];
    }
    average=(double)sum/a;
    printf("学生成绩平均数为%.2f\n",average);
    max=score[0];
    min=score[0];
    for(i=0;i<a;i++)
    {
        
      if(score[i]>=max)
        {
            b=i+1;
        }
    }
    for(i=0;i<a;i++)
    {
        if(score[i]<=min)
        {
            c=i+1;
        }
    }
    printf("取得最大分数的学生为%d\n",b);
    printf("取得最小分数的学生为%d\n",c);
    printf("请输入一个分数,我将输出他是第几名\n");
    scanf("%d",&d);
        for(i=0;i<a;i++)
       {
         
          if(score[i]==d)
        {
            e=i+1;
            printf("他是第%d名学生\n",e);
        }
     } 
     return 0;
 }

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

#include<stdio.h>
int main()
{
    int i,a,b;
    int number[11]={0,10,20,30,40,50,60,70,80,90};
    printf("0,10,20,30,40,50,60,70,80,90,请输入一个数插入数据中的数\n");
    scanf("%d",&b);
    if(b>=number[9])
    {
        printf("0,10,20,30,40,50,60,70,80,90,%d",b);
    }
    else
    {
        for(i=0;i<10;i=i+1)
        {
            if(b<number[i])
            {
                a=i;
                break;
            }
        }
        for(i=10;i>=a;i=i-1)
        {    
            number[i+1]=number[i];
        }
        number[a]=b;
        printf("现在数据为");
        for(i=0;i<11;i=i+1)
        {
            printf("%d ",number[i]);
        }
    }
    return 0;
}

 

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

# include <stdio.h>
int main()
{
    int x,y,sum;
    int gen[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(gen[x]+gen[y]+gen[sum]==12)
        {
            printf("%d+%d=%d\n",x,y,sum);
        }
    }
    }
return 0;
}

知识点总结1.数组的下标是从0开始的。

               2.在数组定义后对数组进行动态赋值,通常通过循环结构实现。

实验总结1.:元素应该是同种数据类型,元素在内存中是连续依次排列的。

            2.使用#define声明多行函数与声明单行函数没有本质区别。

posted @ 2016-11-27 22:59  呦呵  阅读(214)  评论(1编辑  收藏  举报