回 帖 发 新 帖 刷新版面

主题:求高手解释!哪有错了?

#include<stdio.h>
long fun(int n);
int main(void)
{
    int num;
    printf("请输入一个小于13的整数:\n");
    while(scanf("%d",&num)==1)
    {
        if(num<0)
            printf("负数没有阶乘,请再次输入:\n");
        else if(num>12)
            printf("请输入小于13的整数:\n");
        else
            printf("%d的阶乘是%ld\n",num,fun(num));
        printf("请输入一个小于13的整数(q to quit):\n");
    }
    printf("bye!");
            return 0;
    }
    long fun(int n)
    {
        long int ands;
        if(n>0)
            ands=n*fun(n-1);
        else
            ands=1;
        return ands;
    }

回复列表 (共3个回复)

沙发

while(scanf("%d",&num)==1)最右边的半截小括弧应该为),不能用),也就是说不能用Unicode字符。

板凳

1楼观察的真仔细。

3 楼

编译器没用么?

我来回复

您尚未登录,请登录后再回复。点此登录或注册