답안 #16930

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
16930 2015-10-27T06:28:26 Z taehoon1018 팩토리얼 세제곱들의 합 (YDX14_fact) C
컴파일 오류
0 ms 0 KB
#include <stdio.h>
 
int power(int a,int b)
{
    int res=1;
    for (int i=0;i<b;i++) res*=a;
    return res;
}
 
int main(void)
{
    int pool[5]={1,1,2,6,24};
 
    int num,pw,res=0;
    scanf("%d %d",&num,&pw);
 
    if (pw==0) {
        res=num+1;
        goto fin;
    }
    for (int i=0;i<=4;i++) if (i<=num) res+=power(pool[i],pw);
 
    fin:
    for (;;) {
        if (res%10==0) res=res/10;
        else break;
    }
    printf("%d",res%10);
 
    return 0;
}

Compilation message

fact.c: In function ‘power’:
fact.c:6:5: error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode
     for (int i=0;i<b;i++) res*=a;
     ^
fact.c:6:5: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code
fact.c: In function ‘main’:
fact.c:21:5: error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode
     for (int i=0;i<=4;i++) if (i<=num) res+=power(pool[i],pw);
     ^
fact.c:15:5: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d",&num,&pw);
     ^