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

#include <stdio.h>
int main()
{
    int i,score[i],n,max,min,sum=0,insearch,grade;
    double average;
    printf("请输入要统计的学生人数:\n");
    scanf("%d",&n);
    //平均值 
    for(i=0;i<n;i++)
    {
        printf("请输入学生成绩:\n");
        scanf("%d",&score[i]);
        sum+=score[i];
    }
    average=(double)sum/n;
    printf("平均值为%.2lf\n",average);
    //最大值
    insearch=0;
    max=score[0];
    for(i=1;i<n;i++)
    {
        if(score[i]>max)    
        {
            max=score[i];
            insearch=i;
        }
    } 
    printf("最高分为%d,该学生为第%d号\n",max,++insearch);
    //最小值 
    insearch=0;
    min=score[0];
    for(i=1;i<n;i++)
    {
        if(score[i]<min)    
        {
            min=score[i];
            insearch=i;
        }
    } 
    printf("最低分为%d,该学生为第%d号\n",min,++insearch);
    //寻找
    printf("输入你要找的分数:\n");
    scanf("%d",&grade); 
    for(i=0;i<n;i++)
    {
        if(grade==score[i])
        {
            insearch=i+1;
        }
    }
    printf("该学生的学号为%d",insearch);
    return 0;
}

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

#include <stdio.h>
#define N 11
int main()
{
    int num[N]={1,12,23,34,45,56,67,78,89,90},x,i,m;
    printf("请输入一个数:\n");
    scanf("%d",&x);
    for(i=0;i<=9;i++)
    {
        if(num[i]>x)
        {
            for(m=10;m>i;m--)
            {
                num[m]=num[m-1];
            }
            break;
        }
    }
    num[i]=x;
    for(i=0;i<N;i++)
    {
        printf("%d ",num[i]);
    }
    return 0; 
}

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

#include <stdio.h>
int main()
{
    int i1,i2,i3,n=0;
    int match[10]={6,2,5,5,4,5,6,3,7,6};
    for(i1=0;i1<=9;i1++)
    {
        for(i2=0;i2<=9;i2++)
        {
            for(i3=0;i3<=9;i3++)
            {
                if(i1+i2==i3&&match[i1]+match[i2]+match[i3]==12)
                {
                    printf("%d+%d=%d\n",i1,i2,i3);
                    n++;
                }
            }
        }
    }
    printf("一共有%d个",n);
    return 0;
}

附加题: 输入一行任意长的数字,用数组元素作为计数器统计每个数字出现的次数。用下标为0的元素统计0出现的次数,用下标为1的元素统计1出现的次数…

#include <stdio.h>
int main()
{
    int num[10]={0,0,0,0,0,0,0,0,0,0},i=0;
    char x;
    printf("输入一串数字:\n");
    scanf("%c",&x);
    while(x!='\n')
    {
        i=x-48;
        num[i]++;
        scanf("%c",&x);
    }
    for(i=0;i<10;i++)
    {
        printf("数字 %d 出现了%d次\n",i,num[i]);
    } 
    return 0;
} 

 

 

 

知识点总结:

1:数组下标从0开始,到下标减一结束。

2.数组离不开循环,让数组里的元素全部输出必须借助循环。

3:数组引用一次,只能引用数组中的一个数据。

4:一个数组中的数据类型一致。

5:数组必须先定义。若未声明则初始值为随机数或者零(视编译器而定)。

 

实验总结:

1:自定义变量的拼写。。。

2:只给部分数组的数据赋值时,格式为  sum【n】={1,2,3,4,5,6,7.......},特别是等号,不能丢。

3:循环限制条件的不同,可能会影响整个程序的结构,进而影响程序的简洁性。有可能会让它简单,也可能会麻烦。

4、#define语句后面不能加  ;   

posted on 2016-11-22 21:51  燕超  阅读(272)  评论(4编辑  收藏  举报