我的 c 程序没有给大家任何 result.pls 帮助
My c program is not giving any result.pls help everyone
我写了一个没有给出正确结果的程序。
main()
{
int i=1,n,s=1;
printf("enter the value of n");
scanf("%d",&n);
while(i<=n)
{
s=s*i;
i++;
if (i==n+1)
{
break;
}
}
printf("factorial of n=",s);
}
它给出的结果如下图所示。
您的问题出在这一行:
printf("factorial of n=",s);
这个输出factorial of n=
,但是它不是简单的拼接s
的值,而且s
没有占位符,所以你其实参数太多了
int
输出需要一个占位符:
printf("factorial of n=%d",s);
没有它,您的程序将错误退出(状态 15,当 0 时正常)。
此外,(正如 Vlad 在他的回答中指出的那样)if (i==n+1) { ... }
块是多余的,因为 while
循环将在 i > n
时退出。
写
printf("factorial of n=%d\n",s);
^^
还有这个代码片段
if (i==n+1)
{
break;
}
是多余的,可能会被删除。
您可以将循环编写得更简单。例如
while ( n > 1 ) s *= n--;
无需再使用一个变量 i
。
我写了一个没有给出正确结果的程序。
main()
{
int i=1,n,s=1;
printf("enter the value of n");
scanf("%d",&n);
while(i<=n)
{
s=s*i;
i++;
if (i==n+1)
{
break;
}
}
printf("factorial of n=",s);
}
它给出的结果如下图所示。
您的问题出在这一行:
printf("factorial of n=",s);
这个输出factorial of n=
,但是它不是简单的拼接s
的值,而且s
没有占位符,所以你其实参数太多了
int
输出需要一个占位符:
printf("factorial of n=%d",s);
没有它,您的程序将错误退出(状态 15,当 0 时正常)。
此外,(正如 Vlad 在他的回答中指出的那样)if (i==n+1) { ... }
块是多余的,因为 while
循环将在 i > n
时退出。
写
printf("factorial of n=%d\n",s);
^^
还有这个代码片段
if (i==n+1)
{
break;
}
是多余的,可能会被删除。
您可以将循环编写得更简单。例如
while ( n > 1 ) s *= n--;
无需再使用一个变量 i
。