• 第九次作业


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

    复制代码
    #include <stdio.h>
    #define N 100
    void Score(int score[],int n);  
    double average(int score[],int n);  
    int FindMax(int score[],int n);  
    int FindMin(int score[],int n);  
    int FindMaxIndex(int score[],int n,int max);  
    int FindMinIndex(int score[],int n,int min);  
    int Search(int score[],int n,int x);  
    void bubblesort(int score[],int n);  
    void printscore(int score[],int n);  
    int main()
    {
        int score[N]={0},i,n,x,index1,max,min;                   
        double ave;
        printf("请输入人数
    ");
        scanf("%d",&n);
        Score(score,n);
        ave=average(score,n);
        printf("average=%.2f
    ",ave);
        max=FindMax(score,n);
        min=FindMin(score,n);
        printf("最高分为%d
    最低分为%d
    ",max,min);
        FindMaxIndex(score,n,max);
        FindMinIndex(score,n,min);
        index1=Search(score,n,x);
        printf("您查找的是第%d个学生
    ",index1);
        bubblesort(score,n);
        printf("排序后的数:
    ");
        printscore(score,n);                                                              
        return 0;
    }
    double average(int score[],int n)
    {
        int sum=0,i;
        for(i=0;i<n;i++)
        {
            sum=sum+score[i];
        }
        return (double)sum/n;
    }
    void Score(int score[],int n)
    {
        int i;
        printf("请输入成绩
    ");
        for(i=0;i<n;i++)
        {     
            scanf("%d",&score[i]);
        }
    }
    int FindMax(int score[],int n)
    {
        int i,a;
        a=score[0];
        for(i=0;i<n;i++)
        {
            if(score[i]>a)
            {
                a=score[i];
            }
        }
        return a;
    }
    int FindMin(int score[],int n)
    {
        int i,a;
        a=score[0];
        for(i=0;i<n;i++)
        {
            if(score[i]<a)
            {
                a=score[i];
            }
        }
        return a;
    }
    void printscore(int score[],int n)
    {
        int i;
        for(i=0;i<n;i++)
        {
            printf("%5d",score[i]);
        }
        printf("
    ");
    }
    int FindMaxIndex(int score[],int n,int max)
    {
        int i,count=0;
        for(i=0;i<n;i++)
        {
            if(score[i]==max)
            {
                count=i+1;
                printf("最高分的有第%d个人
    ",count);
            }
        }
    }
    int FindMinIndex(int score[],int n,int min)
    {
        int i,count=0;
        for(i=0;i<n;i++)
        {
            if(score[i]==min)
            {
                count=i+1;
                printf("最低分的有第%d个人
    ",count);
            }
        }
    }
    int Search(int score[],int n,int x)
    {
        int i;
        printf("请输入要查询的成绩
    ");
        scanf("%d",&x);
        for(i=0;i<n;i++)
        {
            if(score[i]==x)
            {
                return i+1;
            }            
        }
        return -1;
    }
    void bubblesort(int score[],int n)
    {
        int i,j,t,flag;
        for(i=0;i<n-1;i++)
        {
            for(j=0;j<n-1-i;j++)
            {
                flag=0;
                if(score[j]>score[j+1])
                {
                    t=score[j];
                    score[j]=score[j+1];
                    score[j+1]=t;
                    flag=1;
                }
            }
            if(flag==0)
            {
                break;
            }
        }
    }

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

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

    附加题

       1.将数组a中的10个元素后移m位,移出的m位顺序存放在数组的 前m位。要求:(1)数组值在程序中初始化(2)m从键盘输入。

    #include <stdio.h>
    #include <stdlib.h>
    #define N 100
    int main()
    {
        int a,b,i,j=0,k;
        int num[N]={0};
        printf("请输入数组个数
    ");
        scanf("%d",&a);
        printf("请输入你要移动的位数
    ");
        scanf("%d",&b);
        if(b>a)
        {
            printf("error
    "); 
            exit(0);
        }
        for(i=0;i<a;i++)
        {
            num[i]=j+1;
            j++;
        }
        for(j=1;j<=b;j++)
        {
            k=num[a-1];
            for(i=a-1;i>0;i--)
            {
                num[i]=num[i-1];
            }
            num[0]=k;
        }
        for(i=0;i<a;i++)
        {
            printf("% 02d",num[i]);
        }
        return 0;
    } 

    实验总结:

    1 void无返回值,直接调用就行!

    2注意分清数据类型,有必要时要进行强制数据转换。

    3数组的第一个数是 ...[0]而不是...[1]。

  • 相关阅读:
    201671010109 《java程序联系》第十六周感想
    201671010109 《 java 程序设计》第十五周感想
    201671010109 《java程序设计》第十四周感想
    201671010109 《java程序设计》第十三周感想
    201671010109 《java程序设计》第十二周感想
    201671010109 《java程序设计》第十一周感想
    201671010109 2016-2017-2《java程序设计》第十周学习心得
    201671010109 2016-2017《java课程》第五周学习感想
    201971010109 2061-2017《java程序设计》第四周学习感想
    201671010107 2016-2017-2 《Java程序设计》总结
  • 原文地址:https://www.cnblogs.com/weizhenchuan/p/6131435.html
Copyright © 2020-2023  润新知