q5588068 发表于 2020-2-19 14:05

大佬们,帮蛮看看这个代码是哪里错了。

本帖最后由 q5588068 于 2020-2-20 23:34 编辑

#include<stdio.h>

void main()
{
      int iNumber,n;         
      int iSum=1;      
   printf("Enter a number\n");
         scanf("%d",&n);
   
      for(iNumber=1;iNumber<=n;iNumber++);
         
                iSum=iNumber*iSum;
         
         printf("the result is:%d\n",iSum);

}


这个要求说让改正结果输出与实际不符的错误,我没看出来哪里有问题,我也不知道具体这个是怎么算的,没理解了,希望大哥有空的话按照这个代码给小弟详细的解释下每一行代表个什么意思。

yyaocs 发表于 2020-2-19 14:08

不知道你的题目是啥,所以很难发表啥意见,不过
for(iNumber=1;iNumber<=n;iNumber++);
这句话你写了个;分号,所以这个for循环其实没啥用,虽然不知道你的题目和目的是啥,不过这里多个;号基本肯定不是你所想要的

wslans 发表于 2020-2-19 14:12

for(iNumber=1;iNumber<=n;iNumber++);
多分号 , iSum=iNumber*iSum; 只执行一次,输出结果是n
应该是要求输出阶乘吧,去掉;就没问题了

q5588068 发表于 2020-2-19 14:14

yyaocs 发表于 2020-2-19 14:08
不知道你的题目是啥,所以很难发表啥意见,不过
for(iNumber=1;iNumber

大哥,你给解释下,我如果输入3,他这个6是怎么计算出来的呢

q5588068 发表于 2020-2-19 14:16

wslans 发表于 2020-2-19 14:12
for(iNumber=1;iNumber

对,就是实现阶乘功能,然后大哥能不能解释下,计算原理啊,比如我输入3,他如何计算出的6,

大海呀大海 发表于 2020-2-19 14:20

C语言吗?
是用int main()
然后末尾写return 0;
我记得是这样写才对

Sungoddess 发表于 2020-2-19 14:21

q5588068 发表于 2020-2-19 14:14
大哥,你给解释下,我如果输入3,他这个6是怎么计算出来的呢

应该是输出的1*2*3*1 前面的123是循环的iNumber最后一个1是iSum初始的1

q5588068 发表于 2020-2-19 14:23

Sungoddess 发表于 2020-2-19 14:21
应该是输出的1*2*3*1 前面的123是循环的iNumber最后一个1是iSum初始的1

恩,应该能理解了,我刚才那最笨的办法在纸上列了一下,看明白了。

Sungoddess 发表于 2020-2-19 14:24

你如果是直接提交到网站监测结果的话,你试一下最后只输出iSum的值 不输出其他文本内容

q5588068 发表于 2020-2-19 14:26

Sungoddess 发表于 2020-2-19 14:24
你如果是直接提交到网站监测结果的话,你试一下最后只输出iSum的值 不输出其他文本内容

额,初学者,
页: [1] 2 3
查看完整版本: 大佬们,帮蛮看看这个代码是哪里错了。