求看一个c语言程序,大家来找错!

来源:百度知道 编辑:UC知道 时间:2024/09/23 05:31:33
程序原题是:设计一个函数,输出整数n的所有素数因子。我遍完后运行,结果就是不对,感觉就是main中的循环没办法运行,各位高手帮我看下错在哪了?程序代码如下:

#include<stdio.h>
#include<conio.h>
int prn(int x)
{
int i;
for(i=2;i<x;i++)
if (x%1==0)
return 0;
return 1;
}
main()
{
int j,n;
printf("please type a number for n:\n");
scanf("%d",&n);
printf("1 ");

for (j=2;j<=n;j++)
{
if (n%j==0&&prn(j)==1)
printf("%d\t",j);
}
getch();
}

手误了吧

int prn(int x)
{
int i;
for(i=2;i<x;i++)
if (x%1==0)
return 0;
return 1;
}

里面的x%1==0应该是x%i==0吧

改了试一下吧

建议下次在逻辑判断出打个log出来,这样就比较容易发现问题了。

x%1==0 这个貌视是恒等式吧,return也用错了。
#include<stdio.h>
#include<conio.h>
int prn(int x)
{
int i;
/*改了下面的东西*/
for(i=2;i<x;i++){
if (x%i==0)
return 0;
}
return 1;
}
main()
{
int j,n;
printf("please type a number for n:\n");
scanf("%d",&n);
printf("1 ");

for (j=2;j<=n;j++)
{
/*改了if的条件*/
if (prn(j)==1)
printf("%d\t",j);
}
getch();
}
在VC上运行通过了。

#include<stdio.h>
#include<conio.h>
int prn(int x)
{
int i;
for(i=2;i<x;i++)
if (x%1==0)
return 0;
return 1;
}
该改为
#