4399king 发表于 2020-8-25 16:17:35

问题不大

#include<stdio.h>
int main()
{
        int i;
        int isPrime=1;
        int x;
        int cnt=0;
        for(x=1;cnt<=50;x++){
                for(i=2;i<x;i++){
                        if (x%i==0){
                                isPrime=0;
                                break;
                        }
                }
        }
        if (isPrime==1){
                cnt++;
                printf("%d\t",x);
        }
        if (cnt%5==0){
                printf("\n");
        }
        return 0;
}


按F10咋没反应

tttxiaoz 发表于 2020-8-25 16:36:23

啥平台 啥编译器啥版本报啥错误或者警告 或者啥现象

4399king 发表于 2020-8-25 16:48:48

tttxiaoz 发表于 2020-8-25 16:36
啥平台 啥编译器啥版本报啥错误或者警告 或者啥现象

dev-c++

baige 发表于 2020-8-25 16:50:01

emm,这程序写的,都死循环了

4399king 发表于 2020-8-25 16:50:17

tttxiaoz 发表于 2020-8-25 16:36
啥平台 啥编译器啥版本报啥错误或者警告 或者啥现象

就是本想打印五十个素数,可是无现象

baige 发表于 2020-8-25 16:51:36

4399king 发表于 2020-8-25 16:50
就是本想打印五十个素数,可是无现象

最后的两个判断语句被你写在循环外面,导致上面死循环了

baige 发表于 2020-8-25 16:55:50

本帖最后由 baige 于 2020-8-25 17:05 编辑

#include<stdio.h>
int main() {
        int i;
        int isPrime=1;
        int x;
        int cnt=0;
        for(x=2; cnt<=50; x++) {// 应该从2开始, 1的话不会经过内层循环,直接默认为素数,但1不是素数,所以从2开始
                isPrime = 1;// 每次初始化为1,如果不初始化为1,当存在不是素数时ispime永远为0
                for(i=2; i<x; i++) {
                        if (x%i==0) {
                                isPrime=0;
                                break;
                        }
                }
                if (isPrime==1) {
                        cnt++;
                        printf("%d\t",x);
                }
                if (isPrime&&cnt%5==0) {
                        printf("\n");
                }
        }

        return 0;
}
页: [1]
查看完整版本: 问题不大