求100-200的质数,无法显示结果
问题描述:
#include<stdio.h>
#include<math.h>
void main(){
int judge(int m);
int i;
printf("100到200之间的素数有:\n");
for( i = 101; i < 200; i+=2)
judge( i );
}
int judge(int m){
int n, k;
k = sqrt(m);
for (n = 3; n < k ; n ++){
if( m % n == 0) break;
else if( n == m -1) printf("%d ", m);
}
}
将循环里的k换成m,就可以显示,不明白k有什么问题。谢谢好心人解答。
答
else if( n == m -1) printf("%d ", m);
改为
if( n ==k) printf("%d ", m);
放到循环语句的外面,修改如下:
void judge(int m){
int n, k;
k = sqrt(m);
for (n = 3; n < k ; n ++){
if( m % n == 0) break;
}
if( n == k) printf("%d ", m);
}
答
else的位置不对啊
#include<stdio.h>
#include<math.h>
void main(){
int judge(int m);
int i;
printf("100到200之间的素数有:\n");
for( i = 101; i < 200; i+=2)
judge( i );
}
int judge(int m){
int n, k;
k = sqrt(m);
for (n = 3; n < k ; n ++){
if( m % n == 0)
break;
}
if(n>=k) printf("%d ", m);
return 0;
}