第九次

一、实验内容   

    1.定义函数实现:输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩,最后按照成绩从高到低排序后输出。(至少七个函数。输入函数、平均值函数、最大值下标函数、最小值下标函数,查找函数,排序函数,输出函数)

#include<stdio.h>
#define N 99999


int shuru(int fen[],int n)
{
    int i;
    for(i=0;i<n;i=i+1)
    {
        printf("请输入成绩
");
        scanf("%d",&fen[i]);
    }
}


double pingjun(int fen[],int n)
{
    int i,sum;
    sum=0;
    for(i=0;i<n;i=i+1)
    {
        sum=sum+fen[i];
    }
    return (double)sum/n;
}


int da(int fen[],int n)
{
    int i,max;
    max=fen[0];
    for(i=0;i<n;i=i+1)
    {
        if(fen[i]>max)
        {
            max=fen[i];
        }
    }
    return max;
}


int dabiao(int fen[],int n)
{
    int i,a;
    a=0;
    for(i=0;i<n;i=i+1)
    {
        if(fen[i]>fen[a])
        {
            a=i;
        }
    }
    return a;
}


int xiao(int fen[],int n)
{
    int i,min;
    min=fen[0];
    for(i=0;i<n;i=i+1)
    {
        if(fen[i]<min)
        {
            min=fen[i];
        }
    }
    return min;
}


int xiaobiao(int fen[],int n)
{
    int i,a;
    a=0;
    for(i=0;i<n;i=i+1)
    {
        if(fen[i]<fen[a])
        {
            a=i;
        }
    }
    return a;
}


int zhao(int fen[],int i,int x)
{
    printf("请输入学生成绩
");
    scanf("%d",&x);
    i=0;
    while(fen[i]>=0)
    {
          if(fen[i]==x)
          {
              return i;
          }
          i=i+1;
    }
    return -1;
}


int pai(int fen[],int n)
{
    int i,j,k,t;
    for(i=0;i<n-1;i=i+1)
    {
        k=0;
        for(j=0;j<n-1;j=j+1)
        {
            if(fen[j]>fen[j+1])
            {
                t=fen[j];
                fen[j]=fen[j+1];
                fen[j+1]=t;
                k=1;
            }
        }
        if(k==0)
        {
            break;
        }
    }
}


int main()
{
    int fen[N],n,max,min,a,b,c,i;
    double ping;
    printf("请输入一共有多少学生
");
    scanf("%d",&n);
    shuru(fen,n);
    ping=pingjun(fen,n);
    printf("平均分是%.2lf
",ping);
    max=da(fen,n);
    a=dabiao(fen,n);
    a=a+1;
    printf("最高分是%d,是第%d个同学
",max,a);
    min=xiao(fen,n);
    b=xiaobiao(fen,n);
    b=b+1;
    printf("最低分是%d,是第%d个同学
",min,b);
    c=zhao(fen,n,c);
    c=c+1;
    printf("这是第%d个学生
",c);
    pai(fen,n);
    printf("排序后的成绩为
");
    for(i=0;i<n;i=i+1)
    {
        printf("%4d",fen[i]);
    }
    return 0;
}

2.定义长度为100的整型数组,将数组元素赋初值为1,2……100,将其中所有值为3或7倍数的值删除,最后打印输出数组中剩余数的个数及每个数。

#include<stdio.h>
int main()
{
    int shu[100];
    int i,a;
    a=0;
    for(i=0;i<100;i=i+1)
    {
        shu[i]=i+1;
    }
    for(i=0;i<100;i=i+1)
    {
        if(shu[i]%3==0||shu[i]%7==0)
        {
            shu[i]=0;
        }
    }
    for(i=0;i<100;i=i+1)
    {
        if(shu[i]!=0)
        {
            a=a+1;
            printf("%d ",shu[i]);
        }
    }
    printf("还剩下%d个数
",a);
    return 0;
}

二、实验总结

1、查百度

2、数组在函数中的传递

3、不要嫌程序麻烦,要一步一步的耐心写

三、程序分析

程序1:两个数换位置,执行结果是  2,1

程序2:两个数换位置,但是换不了,  结果是 1,2

原文地址:https://www.cnblogs.com/accelerator123/p/6126294.html