美文网首页
2018-03-08实验一

2018-03-08实验一

作者: 林之禾 | 来源:发表于2018-03-08 16:19 被阅读0次

    Test1_head.h

    //求a中的最大值函数
    int a_MAX(int *a,int n){
        int max=*a;
        for(int i=0;i<n;i++){
            if(max<*(a+i)){
                max=*(a+i);
            }
        } 
        return max;
    }
    //求a中的最小值函数
    int a_MIN(int *a,int n){
        int min=*a;
        for(int i=0;i<n;i++){
            if(min>*(a+i)){
                min=*(a+i);
            }
        } 
        return min;
    }
    //求a中的平均值函数
    int a_AVE(int *a,int n){
        int sum=0,aver;
        for(int i=0;i<n;i++){
            sum+=*(a+i);
        }
        aver=sum/n;
    }
    //求a中的最大值、最小值和平均值的函数
    void aMAX_MIN_AVE(int *a, int n, int &max, int &min, int &aver){
        max=a_MAX(a,n);
        min=a_MIN(a,n);
        aver=a_AVE(a,n);
    }
    
    #define TRUE 1
    #define FALSE 0
    int find_prime(int num){
        if(num<2){
            return FALSE;
        }
        for(int i=2;i<=num/2;i++){
            if(num%i==0){
                return FALSE;
            }
        }
        return TRUE;
    } 
    //计算a中所有素数之和。
    int prime_SUM(int *a, int n){
        int sum=0;
        for(int i=0;i<n;i++){
            if(find_prime(*(a+i))){
                printf("%d ",*(a+i));
                sum+=*(a+i);
            }
        }
        return sum;
    }
    
    void aSORT(int *a,int n){
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                if(*(a+i)>*(a+j)){
                    int temp=*(a+i);
                    *(a+i)=*(a+j);
                    *(a+j)=temp;
                }
            }
        }
    }
    

    Test1_main.cpp

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    
    #include"Test1_head.h"
    
    #define A_MAX 20;
    /*
    ①  编写求a中的最大值、最小值和平均值的函数
        void aMAX_MIN_AVE(int *a, int n, int &max, int &min, int &aver), 
        用"引用参数"带回结果,注意形参前&符号。
    ②   编写函数 int prime_SUM(int *a, int n) 计算a中所有素数之和。
    ③   选做:编写函数 void aSORT(int *a,int n) 对a进行从小到大的排序,并输出排序结果。
    */
    int main(void){
        int n=A_MAX;
        int a[n]={1,2,3,4,5,
                  6,7,66,2,1,
                  9,33,52,12,8,
                  0,-1,23,64,28};
        int max,min,aver;
        aMAX_MIN_AVE(a, n,max,min,aver);
        printf("最大值=%d 最小值=%d 平均值=%d\n",max,min,aver);
        int sum_prime=prime_SUM(a, n);
        printf("素数和=%d\n",sum_prime);
        aSORT(a,n);
        puts("排序后:");
        for(int i=0;i<n;i++){
            printf("%d ",*(a+i)); 
        }
        return 0;
    } 
    

    相关文章

      网友评论

          本文标题:2018-03-08实验一

          本文链接:https://www.haomeiwen.com/subject/pjuyfftx.html