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;
}
网友评论