2017实验5 函数程序设计

6-1 使用函数计算两点间的距离(10 分)
double dist( double x1, double y1, double x2, double y2 ){
    return pow(pow((x1-x2),2)+pow((y1-y2),2),0.5);
}
6-2 符号函数(10 分)
int sign(int x) {
    if (x > 0) {
        return 1;
    } else if (x == 0) {
        return 0;
    } else {
        return -1;
    }
}
6-3 使用函数求1到10的阶乘和(10 分)
double fact( int n ){
    int num;
    num=1;
    for(int j=1;j<=n;j++){
            num *=j;
       }
   return num;
}

6-4 使用函数判断完全平方数(10 分)
int IsSquare( int n ){
    if(pow(n,0.5)*pow(n,0.5)==n){
        return 1;

    }else{
        return 0;
    }
}
6-5 使用函数求素数和(20 分)
int prime( int p ) {
    int count=0;
        for(int i=1; i<=p; i++) {

            if(p%i==0) {
                count++;
            }
        }
    if(count==2) {
        return 1;
    } else {
        return 0;
    }
}
int PrimeSum( int m, int n ) {
    int sum=0;
    for(int i=m; i<=n; i++) {
        if(prime(i)) {
            sum+=i;
        }
    }
    return sum;
}
6-6 数字金字塔(15 分)
void pyramid( int n )
{
    for(int i=1;i<=n;i++){
        for(int m=n;m>i;m--){
            printf(" ");
        }
        for(int j=1;j<=i;j++){
            printf("%d ",i);
        }
        printf("\n");
    } 
}

6-7 使用函数计算两个复数之积(10 分)
void complex_prod(double x1, double y1, double x2, double y2) {
    result_real = x1 * x2 - y1 * y2;
    result_imag = x1 * y2 + x2 * y1;
}
6-8 使用函数求最大公约数(10 分)
int gcd( int x, int y ){
    int i=x;
    while(1){
        if(x%i==0&&y%i==0){
            return i;
        }
        i--;
    }
}
6-9 使用函数统计指定数字的个数(15 分)
int CountDigit(int number, int digit) {
    int a, b;
    int count = 0;
    if (number == 0) {
        return 1;
    }

    while (number != 0) {
        a = number % 10;
        if (a == digit || a == -digit) {
            count++;
        }
        number = number / 10;
    }

    return count;

}
6-10 使用函数求余弦函数的近似值(15 分)
double funcos(double e, double x) {
    double sum = 0, d = 100;
    int i = 0, j;
    double cj;
    int count = 0;
    while (d > e) {
        count++;
        if (count % 2 != 0) {
            cj = 1;
            for (j = 1; j <= i; j++) {
                cj = cj * j;
            }
            d = pow(x, i) / cj;
            sum = sum + d;
            i += 2;
        } else {
            cj = 1;
            for (j = 1; j <= i; j++) {
                cj = cj * j;
            }
            d = pow(x, i) / cj;
            sum = sum - d;
            i += 2;
        }
    }
    return sum;
}
6-11 使用函数输出水仙花数(20 分)
int narcissistic( int number ){
    int sum,sum2=0,a=number,count=0;
    while(a>0){
        a/=10;
        count++;
    }
    a=number;
    for(int i=0;i

你可能感兴趣的:(2017实验5 函数程序设计)