关于C的一道初级试题!

来源:百度知道 编辑:UC知道 时间:2024/06/24 09:35:51
判断一个数是否为素数!
int main(int argc, char *argv[])
{
int n;
float k,m;
scanf("%f",&m);
k=sqrt(m);
if(n>k) printf("%f not is a prime",m);
else
for(n=2;n<=k;n++)
{if(m%n==0) printf("%f is a prime",m);break;}

system("PAUSE");
return 0;
}
谁能帮我看看 这道题错在哪啊,不能编译!

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
int n;
int k,m,f=0;
scanf("%d",&m);
k=(int)sqrt(m);

for(n=2;n<=k;n++)
if(m%n==0){
printf("%d is not a prime",m);
f=1;
break;
}
if(!f)
printf("%d is a prime",m);

system("PAUSE");
return 0;
}

最好多加些括号,又不要钱。
if(n>k) {
printf("%f not is a prime",m);
}else {
for(n=2;n<=k;n++)
{
if(m%n==0) printf("%f is a prime",m);break;
}
}

报什么错?
(1)头文件加了没有?
#include <math.h>
#include <stdio.h>

(2)
break;要和前面的printf语句一起套在一个{}里

BTY:for 循环里面的逻辑好像也有问题。

你的程序有个致命问题:你使用指针数组作main函数形参,缺根本没用到它,这是不允许的。应改为“int main()”。这是出错主要原因。另外,记得包含文件“stdio.h”“math.h”,还有你的循环过程不严谨。

if(n>k)
pr