zoukankan      html  css  js  c++  java
  • 第九次实验

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

    #include <stdio.h>
    int max(int grade[],int n);
    int min(int grade[],int n);
    void find(int grade[],int n);
    void shuru(int grade[],int n);
    double average(int grade[],int n);
    void paixv(int score[],int n);
    void putout(int grade[],int n);
    #define N 10000
    int main()
    {
        int ren,grade[N],score[N];
        float pingjun;
        printf("请输入学生人数
    ");
        scanf("%d",&ren);
        shuru(grade,ren);
        average(grade,ren);
        max(grade,ren);
        min(grade,ren);
        find(grade,ren);
        paixv(score,ren);
        putout(grade,ren);
        return 0;
    }
    
    
    double average(int grade[],int n)
    {
        int s,sum=0;
        float pingjun;
            for(s=0;s<n;s++)
        {
            sum+=grade[s];
        }
        pingjun=(float)sum/n;
        printf("平均分是%f
    ",pingjun); 
    }
    
    
    
    void shuru(int grade[],int n)
    {
        int s;
        for(s=0;s<n;s++)
        {
            printf("请输入学生的分数:
    ");
            scanf("%d",&grade[s]);
        }
    }
    
    
    
    
    int max(int grade[],int n)
    {
        int s,max,f,ren;
        max=grade[0];
        for(s=0;s<n;s++)
        {
            if(grade[s]>=max)
            {
                max=grade[s];
                f=s+1;
            }
        }
        printf("成绩最高为%d分,他是第%d个同学
    ",max,f);
    }
    int min(int grade[],int n)
    {
        int a,g,ren,zuixiao,s;
        zuixiao=grade[0];
        g=1;
        for(s=1;s<n;s++)
        {
            if(grade[s]<=zuixiao)
            {
                zuixiao=grade[s];
                g=s+1;
            }
        }
        printf("成绩最低为%d分,他是第%d个同学
    ",zuixiao,g);
    }
    void find(int grade[],int n)
    {
        int ren,s,g,h,a;
        printf("请输入一个学生的成绩:
    ");
        scanf("%d",&h);
        for(s=0;s<n;s++)
        {
            if(h==grade[s])
            {
                g=s+1;
                printf("这是第%d个学生的成绩
    ",g);
            }
        }
    }
    void paixv(int score[],int n)
    {
        int i,j,temp,flag;
        for(i=0;i<n-1;i++)
        {
            flag=0;
            for(j=0;j<n-1-i;j++)
            {
                if(score[j]>score[j+1])
                {
                    temp=score[j];
                    score[j]=score[j+1];
                    score[j+1]=temp;
                    flag=1;
                }
            }
            if(flag==0)
            break;
        }
    }
    void putout(int score[],int n)
    {
        int i;
        for(i=0;i<n;i++)
        {
            printf("%d
    ",score[i]);
        }
    } 

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

    #include <stdio.h>
    #define N 100
    int main()
    {
        int number[N],a,s=0,d;
        for(a=1;a<=N;a++)
        {
            number[a]=a;
                if(number[a]%3==0||number[a]%7==0)
            {
                number[a]=0;
            }
            else
            {
                printf("%d	",number[a]);
                s++;
            }
        }
        printf("
    一共%d个数",s);
        
        return 0;
    }

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

    #include <stdio.h>
    #define N 10
    int main()
    {
        int number[N],a,s,d,f,g;
        for(a=1;a<=N;a++)   //数组赋值 
        {
            number[a]=a;
        }
        printf("请输入你想后移位数:
    ");
        scanf("%d",&s);
        number[1]=N;
        for(a=1;a<s;a++)
        {
            f=number[N-1];
            for(g=N-2;g>=1;g--)
            {
                number[g+1]=number[g];
            }
                number[1]=f;
        }
        for(a=1;a<N;a++)
        {
            printf("%d	",number[a]);
        }
        return 0;
    }

    知识点:

    1、定义函数,只要函数名不一样,用的表示符号一样对程序没有太大影响

    2、可以用循环对一个数组进行赋值

    3、调用函数一定要与定义函数名相同

    实验总结

    1、

    注意细节,number[1]=N与number[1]=f为互补作用,没有number[1]=N则程序的最后一个量不能进行循环

    2、应注意数组不能越界,C语言不对数组进行越界检查

  • 相关阅读:
    .NET Core部署到linux(CentOS)最全解决方案,常规篇
    C#规则引擎RulesEngine
    Angular—都2019了,你还对双向数据绑定念念不忘
    HTTP Error 500.30
    ConsoleUDPServer与ConsoleUDP
    基于WMI获取USB设备信息(即获取插即用设备信息)System.Management.ManagementObjectSearcher--ManagementObjectCollection
    基于WMI获取USB设备信息(即获取插即用设备信息)----WMI使用的WIN32_类库名
    基于WMI获取USB设备信息(即获取插即用设备信息)System.Management.ManagementObjectSearcher--ManagementObjectCollection
    C#使用Emgu.CV.dll进行图像处理---使用EmguCV获取摄像头和读取视频
    Windows 10系统“家庭版”到“专业版”的转换
  • 原文地址:https://www.cnblogs.com/456abc/p/6129409.html
Copyright © 2011-2022 走看看