注册 登录
编程论坛 C语言论坛

小弟初来乍到编辑了一个很简单的代码出了问题不知道怎么解决

c语言小弱鸡 发布于 2021-10-24 19:30, 1450 次点击
β:
#include <stdio.h>

int main(int argc, char **argv) {
  int i;
  int x;
  int isprime=1;
  int cnt=0;
  for(x=2;cnt<50;x++){
      for(i=2;i<x;i++){
          if(x%i==0){
              isprime=0;
              break;
          }
      }
      if(isprime==1){
          printf("%d",x);
          cnt++;
      }
  }
    return 0;

2 回复
#2
自由而无用2021-10-24 19:49
https://www.
#3
自由而无用2021-10-24 21:56
//online parser: https://www.bccn.net/run/
程序代码:
#include <stdio.h>

int main(int argc, char *argv[])
{
    int isprime = 1;
    int i, x, cnt = 0;

    for (x = 2; cnt < 50; x++, cnt++, isprime = 1) {
        for (i = 2; i < x; i++) {
            if(x % i == 0) {
                isprime = 0; break;
            }
        }
        if (isprime == 1) printf("prime = %d\n", x);
    }

    return 0;
}


output sample:
prime = 2
prime = 3
prime = 5
prime = 7
prime = 11
prime = 13
prime = 17
prime = 19
prime = 23
prime = 29
prime = 31
prime = 37
prime = 41
prime = 43
prime = 47
#4
apull2021-10-25 08:59
问题出在isprime的初始化上了。
程序代码:

#include <stdio.h>

int main(int argc, char **argv) {
  int i;
  int x;
  int isprime=1;
  int cnt=0;
  for(x=2;cnt<50;x++){
      isprime=1;//每次开始循环都要初始化一下
      for(i=2;i<x;i++){
          if(x%i==0){
              isprime=0;
              break;
          }
      }
      if(isprime==1){
          printf("%d\n",x);//换行分隔
          cnt++;
      }
  }
    return 0;
}
#5
我善治鬼2021-10-25 19:26
還有你打少了一個 } 號

附修正版
程序代码:


#include <stdio.h>


int main()
{
    for (int 甲 = 2, 乙; 甲 < 100; 甲++) {
        for (乙 = 2; 乙 < 甲; 乙++)
            if (甲 % 乙 == 0) break;
        if (乙 == 甲) printf("%d 是素數\n", 甲);
    }
    return 0;
}


1