中易网

c语言程序出错

答案:3  悬赏:60  
解决时间 2021-04-27 23:27
  • 提问者网友:温柔又任性
  • 2021-04-27 02:22

int fac(int n)
{register int i,f=1;
 for(i=1;i<=n;i++)
f=f*i
 return(f);
}
main()
{int i;
 for(i=0;i<=5;i++)
 printf("%d!=%d\n",i,fac(i));
}

vc++6.0运行出错 请问哪方面的问题??

最佳答案
  • 二级知识专家网友:怪咖小青年
  • 2021-04-27 03:12

楼上说的都可以,不过一楼的说return(f),有问题,在C语言语法中这对括号加不加都是正确的,都符合语法规则,还有就是要注意分号问题,最后要说一下的是,对于不同的编译器,可能复制过去后不能运行,但是只有注意C语言规范,不要为了简单省略几个不重要的字,到头来还要检查半天,比如上面的#include<stdio.h>这个加上去了,在任何软件上都能通过,不加的话,在有些软件上就不能通过,还有就是for(int i=1,i<=5;i++)这样写比你int i;for(i=1;i<=5;i++)好些,这就叫做编程规范,虽然都差不多但是要注意这个问题,以后就会很轻松了,不会犯这样的低级错误了,以上仅供参考,本人是计算机专业的,有什么问题联系哦,以后也可以互相切磋的,呵呵!

全部回答
  • 1楼网友:一个很哇塞的汉子
  • 2021-04-27 05:32

#include "stdio.h"//应该加上此头文件 int fac(int n) {register int i,f=1;  for(i=1;i<=n;i++) f=f*i;//这里缺少分号  return f; } main() {int i;  for(i=0;i<=5;i++)  printf("%d!=%d\n",i,fac(i)); }

  • 2楼网友:末路丶一枝花
  • 2021-04-27 04:08
f=f*i    --少个分号    f=f*i;   return(f);   --不需要括号    return f; 从语法上看,就这两个错误,至于逻辑方面是否有错,我没细看,所以未敢下定论
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息