• 第九次作业


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

    #include<stdio.h>
    #define N 1000
    int cj(int score[]);//输入函数
    void cjc(int score[],int n);//输入成绩 
    int search(int num[],int n,int x);//查找 
    int findMinlndex(int score[],int n);//最小值的下标 
    int findMaxlndex(int score[],int n);//最大值的下标 
    void  bubbleSort(int score[],int n);//排序 
    double average(int score[],int n);//平均值 
    int main()
    {
        int a,x,n,num[N],score[N],b,c;
        double ave;
        n=cj(score);
        ave=average(score,n);
        printf("请输入要查找的成绩%d
    ");
        scanf("%d",&x);
        a=search(num,n,x);
        bubbleSort(score,n);
        b=findMaxlndex(score,n);
        c=findMinlndex(score,n);
        if(a!=-1)
        {
            printf("第%d位同学的成绩",a+1);
        }
        printf("平均成绩%.2f
    ,最高成绩为%d,最低成绩为%d
    ",ave,b,c);
        cjc(score,n);
        return 0;
    }
    
    
    
    int cj(int score[])//输入 
    {
        int i=0;
        printf("请输入成绩
    ");
        while(1)
        {
            scanf("%d",&score[i]);
            if(score[i]<0)
                break;
            i++;
        }
        
        return i;
    }
    
    
    
    void Score(int score[],int n)
    {
        int i;
        for(i=0;i<n;i++)
        {
            printf("请输入第%d个学生的成绩:
    ",i+1);
            scanf("%d",&score[i]);
        }
    }
    
    
    void cjc(int score[],int n)//输出 
    {
        int i;
        for(i=0;i<n;i++)
        {
            printf("%5d",score[i]);
        }
    }
    
    
    void  bubbleSort(int score[],int n)//排序 
    {
        int i,j,flag,t;
        for(i=0;i<n-1;i++)
        {
            flag=0;
            for(j=0;j<=n-1-i;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;
        }
    }
    
    
    int search(int num[],int n,int x)//查找        
    {
        int i,a;
        for(i=0;i<n;i++)
        {
            if(num[i]==x)
            return i;
        }
        return -1;
    }
    
    
    int findMinlndex(int score[],int n)//最小 
    {
        int i,minb=0;
        for(i=0;i<n;i++)
        {
            if(score[i]<score[minb])
            {
                minb=i;
            }
        }
        return minb;
    }
    
    
    
    double average(int score[],int n)//平均值 
    {
        int i,sum=0;
        for(i=0;i<n;i++)
        {
            sum+=score[i];
        }
        return (double)sum/n;
    }
    
    
    
    int findMaxlndex(int score[],int n)//最大 
    {
        int i,maxb=0;
        for(i=0;i<n;i++)
        {
            if(score[i]>score[maxb])
            {
                maxb=i;
            }
        }
        return maxb;
    } 

    总结:主函数不太会用了,很混乱,每个函数放的顺序也有讲究。

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

    #include<stdio.h>
    int main()
    {
        int i,a=0;
        for(i=1;i<=100;i++)
        {
            if((i%3!=0)&&(i%7!=0))
            {
                printf(" %3d",i);
                a++;
            }
            if(a%10==0)
            {
                printf("
    ");
            }
        }
        printf("一共%d个",a);
        return 0;
    }

    总结:只用了一个主函数,感觉还可以。

    知识点

    1,函数不可以包含在主函数内。

    2,函数中定义的变量在只存在于该函数。

    3,函数中定义的数组却可以用在其他函数中。

    实验总结

    我看了火柴棍的那几种优化,各有各的特点,还是函数的最简单。

  • 相关阅读:
    松软科技web课堂:SQLServer之UCASE() 函数
    松软科技web课堂:SQLServer之HAVING 子句
    SQLServer之GROUP BY语句
    松软科技web课堂:SQLServer之SUM() 函数
    松软科技web课堂:SQLServer之MIN() 函数
    SQLServer之MAX() 函数
    松软科技web课堂:SQLServer之LAST() 函数
    松软科技带你学开发:SQL--FIRST() 函数
    松软科技带你学开发:SQL--COUNT() 函数
    NodeJS初介
  • 原文地址:https://www.cnblogs.com/web5217/p/6132295.html
Copyright © 2020-2023  润新知