为了账号安全,请及时绑定邮箱和手机立即绑定

例题在Visual studio中实现有问题?问题在else那里,通不过。怎么办?

例题在Visual studio中实现有问题?问题在else那里,通不过。怎么办?

C
慕斯卡9202087 2016-08-17 22:58:56
#include <stdio.h>int factorial(int n){    int result;    if (n < 0)    {        printf("%s\n", "输入错误");        return 0;    }    else if (n == 0 || n == 1);    {        result = 1;    }    else (n > 1)    {        result = factorial(n - 1)*n;    }    return result;}int main(){    int n = 5;    printf("%s\n", "%d的阶乘=%d", n, factorial(n));    return 0;}
查看完整描述

7 回答

?
噼喱啪啦

TA贡献392条经验 获得超170个赞

  1. 首先第七行,%s是输出字符,也就是要有变量跟%d那样的用法,是输出控制,你可以直接这样输出

    printf( "输入错误");输出提示信息就可以.

  2. 还有第十四行,这个else其实后面不用加(n>1)了,else就行,所有的if跟else都不能加分号

  3. 最后主函数的那句输出,你也是滥用了%s,你继续学习下一节应该就懂了.

查看完整回答
1 反对 回复 2016-08-18
?
人在梦游中

TA贡献2条经验 获得超0个赞


else后面能直接带上条件么? else (n > 1),可以改成 else  if(n > 1)

查看完整回答
反对 回复 2016-08-18
?
叉哥睡不醒

TA贡献2条经验 获得超1个赞

else if ...后面多了个分号

查看完整回答
反对 回复 2016-08-18
?
霏梧

TA贡献65条经验 获得超23个赞

#include <stdio.h>
int factorial(int n)
{
    int result;
    if (n < 0)
    {
        printf("%s\n", "输入错误");
        return 0;
    }
    else if (n == 0 || n == 1)
    {
        result = 1;
    }
    else if (n > 1)
    {
        result = factorial(n - 1)*n;
    }
    return result;
}
int main()
{
    int n = 5;
    printf("%d,n阶乘=%d\n", n, factorial(n));
    return 0;
}

查看完整回答
反对 回复 2016-08-18
?
rootclass

TA贡献2条经验 获得超0个赞

怎么办?看运行报错信息指示的那一行,或则前后几行。你已经说是else 出错了,就查看下if …else 结构是否完整。

查看完整回答
反对 回复 2016-08-18
  • 7 回答
  • 0 关注
  • 1812 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信