第一种
//输出小于10的素数
#include<stdio.h>
int main(){
int x;
int i;
int isPrime=1;//是素数
for(x=2;x<10;x++){
for(i=2;i<x;i++){
if(x%i==0){
isPrime=0;
break;
}
}
if(isPrime==1){
printf("%d\n",x);
}
}
return 0;
}
第二种
//输出小于10的素数
#include<stdio.h>
int main(){
int x;
for(x=2;x<10;x++){
int i;
int isPrime=1;//是素数
for(i=2;i<x;i++){
if(x%i==0){
isPrime=0;
break;
}
}
if(isPrime==1){
printf("%d\n",x);
}
}
return 0;
}
第一种也可以运行出结果但是结果是错的
请教各位
详细讲讲为什么会出现这种问题
int isPrime=1;
需要每次循环重新置1,否则的话,上一次循环置0后,即使当前数x是素数也不会输出。