• 第九次作业


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

    #include<stdio.h>
    #define N 10 
    int Readscore(int score[],int n);//输入函数 
    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 search(int num[],int n, int x);//查找 
    void bubbleSort(int score[],int n);//排序 
    void printScore(int score[],int n);//浏览函数 
    int main()
    {
        int score[N]={0},n,i,maxindex,minindex,max,min;
        double ave;
        printf("int student number:
    ");
        scanf("%d",&n);
        Score(score,n);
        bubbleSort(score,n);
        printScore(score,n);
        max=findMax(score,n);
        printf("max=%d
    ",max);
        min=findMin(score,n);
        printf("min=%d
    ",min);
        ave=average(score,n);
        printf("average=%lf",ave);
        return 0;
    }
    int Readscore(int score[], int n)
    {
        int i=0;
        printf("printscore");
        while(1)
        {
            scanf("%d",score[i]);
            if(score[i]<0)
            {
                break;
            }
            break;
        }
        return i;
    }
    
    void Score(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,ave;
        for(i=0;i<n;i++)
        {
            sum=sum+score[i];
        }
        ave=(double)sum/n;
        return ave;
    }
    int findMax(int score[],int n)
    {
        int i,max;
        max=score[0];
        for(i=0;i<n;i++)
        {
            if(score[i]>max)
            {
                max=score[i];
            }
        }
        return max;
    }
    int findMin(int score[],int n)
    {
        int i,min;
        min=score[0];
        for(i=0;i<n;i++)
        {
            if(score[i]<min)
            {
                min=score[i];
            }
        }
        return min;
    }
    int search(int num[],int n, int x)
    {
        int i;
        for(i=0;i<n;i++)
        {
              if(num[i]==x)
            return i;
        }
        return -1;
    }
    void bubbleSort(int score[],int n)
    {
        int i,j,temp;
        for(i=0;i<n-1;i++)  
        {
              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;
                }
            }
        }
    }
    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>
    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、一般是数组名[常量表达式][常量表达式]。

    三、程序分析

             1,

      程序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;
    }

    最后a[0]与a[1]的值互换,void里完成交换,因为不需要输出,所以有awap(a),int[]可以由里面的数的变化表示相应的值。

     程序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;
    }

    x与y的值得交换代表a[0]于a[1]的交换,这里将a[]具体的赋给了某个字母。

  • 相关阅读:
    Redis 3.0.4 链表
    Redis 3.0.4 简单动态字符串(sds)
    4. 寻找两个有序数组的中位数
    redis主从同步异常
    redis重命名flushall和flushdb重启失败
    redis3.2 aof重写
    【转载】Redis 4.0 自动内存碎片整理(Active Defrag)源码分析
    [转]memcached对key和value的限制 memcached的key最大长度和Value最大长度
    LSM树(Log-Structured Merge Tree)存储引擎
    Linux使用详解(进阶篇)
  • 原文地址:https://www.cnblogs.com/yeqingsong/p/6111997.html
Copyright © 2020-2023  润新知