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

    一。实验内容  

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

    #include <stdio.h>
    #define N 100
    void scan(int score[],int n);     //输入函数 
    int average(int score[],int n);//平均函数 
    int maxscore(int score[],int n);//最大值 
    int maxindex(int score[],int n);//最大值下标 
    int minscore(int score[],int n);//最小值 
    int minindex(int score[],int n);//最小值下标 
    int search(int num[],int n,int x);//查询 
    void bubblesort(int score[],int n);//升序
    void printscore(int score[],int n); //输出函数 
    int main()
    {
        int score[N],n,max,max1,min,min1,m,x;
        double ave;
        printf("请输入成绩个数
    ");
        scanf("%d",&n);
        scan(score,n);
        ave=average(score,n);
        printf("平均数是%.2f
    ",ave);
        max=maxscore(score,n);
        printf("最大值是%d
    ",max); 
        max1=maxindex(score,n)+1;
        printf("最大值下标为%d
    ",max1);
        min=minscore(score,n);
        printf("最小值是%d
    ",min); 
        min1=minindex(score,n)+1;
        printf("最小值下标为%d
    ",min1);
        printf("请输入一个成绩
    ");
        scanf("%d",&x);
        m=search(score,n,x)+1;
        printf("该学生的下标为%d
    ",m);
        bubblesort(score,n);
        printscore(score,n);     
        return 0;
    }
    void scan(int score[],int n)     //输入函数 
    {
        int i;
        printf("请输入成绩
    ");
        for(i=0;i<n;i++)
        {
            scanf("%d",&score[i]);
         } 
    } 
    int average(int score[],int n)//平均值 
    {
        int sum,i;
        sum=0;
        for(i=0;i<n;i++)
        {
            sum=sum+score[i];
        }
        return(double)sum/n;
    }
    int maxscore(int score[],int n)//最大值 
    {
        int max,i;
        max=score[0];
        for(i=0;i<n;i++)
        {
            if(max<score[i])
            {
                max=score[i];
            }
        }
        return max;
    }
    int maxindex(int score[],int n)//最大值下标
    {
        int i,maxdex=0;
        for(i=1;i<n;i++)
        {
            if(score[i]>score[maxdex])
            {
                maxdex=i;
            }
         } 
         return maxdex;
    } 
    int minscore(int score[],int n)//最小值 
    {
        int min,i;
        min=score[0];
        for(i=0;i<n;i++)
        {
            if(min>score[i])
            {
                min=score[i];
            }
        }
        return min;
    }
    int minindex(int score[],int n)//最小值下标
    {
        int i,mindex=0;
        for(i=1;i<n;i++)
        {
            if(score[i]<score[mindex])
            {
                mindex=i;
            }
         } 
         return mindex;
    } 
    int search(int num[],int n,int x)//查询
    {
        int i;
        for(i=0;i<n;n++)
        {
            if(num[i]==x)
            {
                return i;
            }
         } 
         return -1;
    } 
    void bubblesort(int score[],int n)//升序
    {
        int  i,j,t,flag;
        for(i=0;i<n;i++)
        {
            flag=0;
            for(j=0;j<n-1;j++)
            {
              
             if(score[j]>score[j+1])
             {
                t=score[j];
                score[j]=score[j+1];
                score[j+1]=t;
                flag=1;
             }
            }
        if(flag==0)
         {
            break;
         } 
        }
    } 
    void printscore(int score[],int n)//输出函数
    {
        int i;
        for(i=0;i<n;i++)
        {
            printf("%5d",score[i]);
         } 
         printf("
    ");
    }

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

    #include <stdio.h>
    #define N 100
    int main()
    {
        int num[N],i,x=0,n=0;
        for(i=0;i<N;i++)
        {
            x++;
            num[i]=x;
            if(num[i]%3==0||num[i]%7==0)
            {
                num[i]=0;
            }
        }
        for(i=0;i<N;i++)
        {
            if(num[i]!=0)
            {
                printf("%5d",num[i]);
                n++;
            }
        }
        printf("
    ");
        printf("一共有%d个数
    ",n);
        return 0;
    }

    二.实验总结

    1.第一题应该写一个主函数 然后对应写子函数,最好加注释看着清晰,容易出错

    2.注意平均数得强行转换为double

    3.double类型输入的时候必须用%lf,输出可以用%lf或%f,不能用%d

    三.实验分析

    程序1

    #include <stdio.h>
    void swap(int x[]);
    int main()
    {  
         int a[2]={1,2};
        swap(a);
        printf("a[0]=%d
    a[1]=%d
    ",a[0],a[1]);
        return 0;
    }
    void swap(int x[])
    {   
        int z;
        z=x[0];     
        x[0]=x[1];     
        x[1]=z;
    }

    程序2

    #include <stdio.h>
    void swap(int x,int y);
    int main()
    {
        int a[2]={1,2};
        swap(a[0],a[1]);
        printf("a[0]=%d
    a[1]=%d
    ",a[0],a[1]);
        return 0;
    }
    void swap(int x,int y)
    {  
         int z;
         z=x;
         x=y; 
         y=z;
    }

    分析:程序一 值传递,将实参的变量值传递给形参

             程序二 地址传递,将实参的地址传递给形参

  • 相关阅读:
    学习PyQt5(二):PyQt5布局管理
    学习PyQt5(一):安装PyQt5以及在PyCharm上配置PyQt5
    Day037--Python--线程的其他方法,GIL, 线程事件,队列,线程池,协程
    Day036--Python--线程
    Day035--Python--管道, Manager, 进程池, 线程切换
    Day034--Python--锁, 信号量, 事件, 队列, 生产者消费者模型, joinableQueue
    Day033--Python--进程
    Day032--Python--操作系统, process进程
    Day30--Python--struct, socketserver
    Day29--Python--缓冲区, 粘包
  • 原文地址:https://www.cnblogs.com/-lyf/p/6131727.html
Copyright © 2011-2022 走看看