int num, i;
int flag = 1;
for ( num = 100; num <= 200; num++){
//printf ("%d\n",num);
for ( i = 2; i < num/2; i++){
if (num % i == 0){
flag = 0;
break;
}
}
if (flag){
printf ("%d ",num);}
}
每次循环之前flag应该设为1,否则第一次不是素数后flag一直是0,后面的就不会输出了
#include <stdio.h>
#include <math.h>
int main()
{
int num, i;
int flag = 1;
for ( num = 100; num <= 200; num++)
{
flag=1;
for ( i = 2; i <num/2; i++)
{
if (num%i == 0)
{
flag = 0;
break;
}
}
if (flag==1)
{
printf ("%d ",num);
}
}return 0;
}
注意flag=1的位置,对于每一个num,都要将flag先置为1
int num, i;
for ( num = 100; num <= 200; num++) {
int flag = 1;
//printf ("%d\n",num);
for ( i = 2; i < num / 2; i++) {
if (num % i == 0) {
flag = 0;
break;
}
}
if (flag) {
printf ("%d ", num);
}
}
flag=1 在for 循环里面,重要的事说三遍!
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!