• 第九次作业


      一、实验内容        

    1、实验要求:

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

    代码:

    #include<stdio.h>
    #define N 100
    void shuru(int score[],int n);
    double average(int score[],int n);
    int maxindex(int score[],int n,int max[]);
    int minindex(int score[],int n,int min[]);
    int findindex(int a,int score[],int n,int find[]);
    void paixu(int score[],int n);
    void shuchu(int score[],int n);
    int main()
    {
        int i,score[N]={0},n,max[N]={0},min[N]={0},f,find[N]={0};
        printf("请输入学生的人数
    ");
        scanf("%d",&n);
        shuru(score,n);
        printf("平均分为%.2lf
    ",average(score,n));
        printf("成绩最高的学生是:");
        i=maxindex(score,n,max);
        shuchu(max,i);
        printf("成绩最低的学生是:");
        i=minindex(score,n,min);
        shuchu(min,i);
        printf("请输入你想查找的成绩:");
        scanf("%d",&f);
        if(findindex(f,score,n,find))
        {
            i=findindex(f,score,n,find);
            printf("这个成绩的学生是:
    ");
            shuchu(find,i);
        }
        else
        {
            printf("你查找的成绩不存在。
    ");
        }
        printf("将成绩由小到大排列:
    ");
        paixu(score,n);
        shuchu(score,n);
        return 0;
    } 
    void shuru(int score[],int n)
    {
        int i;
        for(i=0;i<n;i++)
        {
            printf("请输入第%d个学生的成绩:
    ",i+1);
            scanf("%d",&score[i]);
        }
    }
    double average(int score[],int n)
    {
        int i,sum=0;
        for(i=0;i<n;i++)
        {
            sum=sum+score[i];
        }
        return (double)sum/n;
    }
    int maxindex(int score[],int n,int max[])
    {
        int i,Max,index=0;
        Max=score[0];
        for(i=0;i<n;i++)
        {
            if(score[i]==Max)
            {
                max[index++]=i;
            }
            else if(score[i]>Max)
            {
                Max=score[i];
                index=0;
                max[index++]=i;
            }
        }
        return index;
    }
    int minindex(int score[],int n,int min[])
    {
        int i,Min,index=0;
        Min=score[0];
        for(i=0;i<n;i++)
        {
            if(score[i]==Min)
            {
                min[index++]=i;
            }
            else if(score[i]<Min)
            {
                Min=score[i];
                index=0;
                min[index++]=i;
            }
        }
        return index;
    }
    int findindex(int a,int score[],int n,int find[])
    {
        int i,index=0,flag=0;
        for(i=0;i<n;i++)
        {
            if(a==score[i])
            {
                find[index++]=i;
                flag=1;
            }
        }
        if(flag==0)
        return 0;
        else
        return index;
    }
    void paixu(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 shuchu(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 a[N],i,b=0;
        for(i=0;i<100;i++)
        {
            a[i]=i+1;
            if(a[i]%3==0||a[i]%7==0)
            {
                a[i]=0;
                b++;
            }
            if(a[i]!=0)
            {
                printf("%d	",a[i]);
            }
        }
        printf("剩余%d个数
    ",100-b);
        return 0;
    }

    程序运行结果 :

    二、实验总结(实验中遇到的问题及解决方法) 

    1、函数名要一样,注意;的使用。

    2、注意数组的越界问题。

    3、返回值应放在循环的外面。

    4、冒泡排序法的思路是:把相邻两个数进行比较,把小的调到前头!

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

  • 相关阅读:
    什么是微服务架构!
    Redis使用总结 (序列三)
    redis centos linux操作系统安装及集群使用(序列二)
    Python操作Redis缓存数据库
    高并发系统的限流实现方式
    如何服务器的操作系统中的型号
    B8 Concurrent JDK中的乐观锁与原子类
    B7. Concurrent 锁的分类
    B6. Concurrent 内存模型与线程
    B5. Concurrent JVM 锁优化
  • 原文地址:https://www.cnblogs.com/chenqiu/p/6126794.html
Copyright © 2020-2023  润新知