美文网首页
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