zoukankan      html  css  js  c++  java
  • 第九次作业

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

    #include<stdio.h>
    #define N 999
    int putin(int fen[],int n);        //输入 函数 
    double average(int fen[],int n);        //平均数函数 
    int max(int fen[],int n);        //最大值函数 
    int maxindex(int fen[],int n);        //最大值下标函数 
    int min(int fen[],int n);        //最小值函数 
    int minindex(int fen[],int n);        //最小值下标函数 
    int search(int fen[],int i,int x);        //查找函数 
    int sort(int fen[],int n);        //排序函数 
    int main()
    {
        int fen[N],ge,zuida,zuixiao,a,b,c,i;
        double ping;
        printf("请输入一共有多少学生
    ");
        scanf("%d",&ge);
        putin(fen,ge);
        ping=average(fen,ge);
        printf("平均分是%.2lf
    ",ping);
        zuida=max(fen,ge);
        a=maxindex(fen,ge);
        a=a+1;
        printf("最高分是%d,是第%d个同学
    ",zuida,a);
        zuixiao=min(fen,ge);
        b=minindex(fen,ge);
        b=b+1;
        printf("最低分是%d,是第%d个同学
    ",zuixiao,b);
        c=search(fen,ge,c);
        c=c+1;
        printf("这是第%d个学生
    ",c);
        sort(fen,ge);
        printf("排序后的成绩为
    ");
        for(i=0;i<ge;i=i+1)
        {
            printf("%4d",fen[i]);
        }
        return 0;
    }
    int putin(int fen[],int n)
    {
        int i;
        for(i=0;i<n;i=i+1)
        {
            printf("请输入成绩
    ");
            scanf("%d",&fen[i]);
        }
    }
    double average(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 max(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 maxindex(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 min(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 minindex(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 search(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 sort(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;
            }
        }
    }

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

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

     二、实验总结:

    1.一般情况下,函数中不能有输入输出的语句。
    2.各个函数之间一定要区分开,否则容易混淆。
    3.冒泡排序就是重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。

     三、程序分析:

    程序一中自定义函数里数组的改变导致实际数组的改变,程序二中swap函数将实参的值复制一份给了形参,形参的改变不会影响到实参的改变。

  • 相关阅读:
    视频: 不抱怨才有今天的马云---励志演讲
    ArcGIS图框工具5.2发布,支持ArcGIS10.0,10.110.2,支持国家2000坐标系
    arcgis 10.2 安装教程(含下载地址)
    delete
    基金销售牌照火热的背后,基金销售牌照、基金支付牌照
    快递业务经营许可证企业信息(截止2016.6.30)
    1月北上广P2P平台之最 平台数成交量现双降
    公募基金牌照:谁在布局?
    delete
    各地互联网小贷牌照申请全揭秘
  • 原文地址:https://www.cnblogs.com/buyuhang/p/6132009.html
Copyright © 2011-2022 走看看