C언어 SNAIL 런타임오류 뜹니다.

  • jain011
    jain011
    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <math.h>
    
    double probOfNoRain(int n,int m); //비 안올확률.
    int combination(int a, int b); //a Combination b 를 출력.
    
    int main(int argc, char * argv[]) {
        int t;
        int depth, period;
    
        scanf("%d", &t);
    
        while (t--) {
            scanf("%d %d", &depth, &period);
    
            printf("%.10f\n", (double)1-probOfNoRain(depth - period, period));
    
        }
    
        return 0;
    }
    
    
    double probOfNoRain(int n, int m) { // n = depth - period, m = period
        double ret = 0;
        double rain = 0.75;
        double noRain = 0.25;
    
        for (int i = 0; i < n; i++) {
            ret += (double)combination(m, i)*pow(noRain, m-(double)i)*pow(rain,(double)i); 
        }
        return ret;
    }
    
    
    // 두 자연수를 입력받아 aCb 출력
    // aCb = a(a-1)...(a-b+1) / b! = b(b-1)...1
    
    int combination(int a, int b) {
        int i, j, n = 1, r = 1;
    
        for (i = a; i >= a - b + 1; i--) {
            n = n * i;
        }
        for (j = b; j >= 1; j--) {
            r = r * j;
        }
    
        return (n / r);
    }
    

    이항정리를 통하여 여사건의 확률을 통해 구한 코드입니다. 예제출력과 똑같이 나오고 7 3 입력같은 확률이 0이 나오는 출력에 관해서도 잘 되는것을 확인하였는데 왜 런타임 오류가 나는지 궁금합니다!.


    6년 전
0개의 댓글이 있습니다.
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.