편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2021.05.21

    c언어 결과값이 계속 0이 나옵니다.


    fomula1과 fomula2함수의 리턴값을 바꾸면 값이 나올 것 같긴 한데, 값이 계속 0이 나옵니다. 조그마한 팁이라도 얻을 수 있을까요?

    이런 값을 얻고싶습니다.

    이미지

    #include <stdio.h>
    #include <math.h>
    
    double fomula1(double (*pf1)(double), double n);
    double fomula2(double m);
    int comb(int n);
    int factorial(int n);
    
    int main() {
        printf("%.3lf\n", fomula1(fomula2, 3.0));
        return 0;
    }
    
    int comb(int n) {
        factorial(2 * n) / factorial(n) * factorial(n);
        return (int)comb;
    };
    
    int factorial(int n) {
        int p;
        for (p = n; p >= 1; p--)
            n *= p;
        return (int)factorial;
    }
    
    double fomula1(double (*pf1)(double), double n) {
        int i;
        int result, sum = 0;
        for (i = 1; i < n + 1; i++) {
            result = (1 / 2) * ((int)pf1);
            sum = sum + result;
        };
        return sum;
    }
    
    double fomula2(double m) {
        int k;
        int result, sum;
        result, sum = 0;
        for (k = 1; k < m + 1; k++) {
            result = 1 + comb(2 * k) * (1 / pow((2 + k), k));
            sum += result;
        };
        return sum;
    }
    
  • 프로필 알 수 없는 사용자님의 편집
    날짜2021.05.21

    c언어 결과값이 계속 0이 나옵니다.


    fomula1과 fomula2함수의 리턴값을 바꾸면 값이 나올 것 같긴 한데, 값이 계속 0이 나옵니다. 조그마한 팁이라도 얻을 수 있을까요?

    이런 값을 얻고싶습니다.이미지

    include

    include

    double fomula1(double (*pf1)(double), double n); double fomula2(double m); int comb(int n); int factorial(int n);

    int main() { printf("%.3lf\n", fomula1(fomula2, 3.0)); return 0; }

    int comb(int n) { factorial(2 * n) / factorial(n) * factorial(n); return (int)comb; };

    int factorial(int n) { int p; for (p = n; p >= 1; p--) n *= p; return (int)factorial; }

    double fomula1(double (*pf1)(double), double n) { int i; int result, sum = 0; for (i = 1; i < n + 1; i++) { result = (1 / 2) * ((int)pf1); sum = sum + result; }; return sum; }

    double fomula2(double m) { int k; int result, sum; result, sum = 0; for (k = 1; k < m + 1; k++) { result = 1 + comb(2 * k) * (1 / pow((2 + k), k)); sum += result; }; return sum; }