帮忙看下这个C程序错在哪里

来源:百度知道 编辑:UC知道 时间:2024/06/25 21:22:53
Description

任一整数x,找出它的素因子并以如下格式输出:
72=2*2*2*3*3
120=2*2*2*3*5

Input

任意整数x (-2100000000<x<2100000000)

Output

按照上述格式输出它的素因子(并换行回车)

Sample Input

-120
Sample Output

-120=-2*2*2*3*5
我的程序是这样的:
#include<stdio.h>
#include<math.h>
main()
{
int n,i=2,w=0;
double k;
scanf("%d\n",&n);
if(n<0)
{
w=1;
n=-n;
}
k=sqrt(n);
if(w==1)
printf("-%d=",n);
else
printf("%d=",n);
while(i<=k)
{
if(n%i==0)
{
printf("%d*",i);
n=n/i;
k=sqrt(n);
continue;
}
i++;
}
printf("%d",n);
return 0;
}
可是没有结果出来,奇怪,到底是哪里出问题了?帮忙看看哈!谢啦

你把scanf("%d\n",n);中的\n去掉就可以了.具体原因可参照scanf,若有疑问可再询问我.

问题出在最后一句
return 0;

执行到此句后,程序直接退出,返回码为0.
如果你是TC环境编辑的话,把这句换成
getchar();

让程序在这里暂停,你观察完执行结果后,键入任意一个键后再退出。