筛法选择素数,可以运行,但是没有输出,printf那句没有运行

问题描述

筛法选择素数,可以运行,但是没有输出,printf那句没有运行

程序可以运行,但是没有输出,没有任何反应。。怎么回事,求救

 #include<stdio.h>
#include<stdlib.h>

#define SIZE 1000

#define TRUE 1
#define FALSE 0

int
main()
{
    char sieve[SIZE];
    char *sp;
    int number;
    for(sp=sieve;sp<&sieve[SIZE];)
        *sp=TRUE;
    for(number=3;;number+=2){
        sp=&sieve[0]+(number-3)/2;
        if(sp>=&sieve[SIZE])
            break;
    while(number%3==0||number%5==0)
        *sp=FALSE;
        }
    printf("2n");
    for(number=3,sp=&sieve[0];
        sp<&sieve[SIZE];
        number+=2,sp++){
            if(*sp)
                printf("%dn",number);
        }
    return ;
}

解决方案

首先感谢大家的回答,问题解决了,确实进入了一个死循环没有出来。不过不是在大家说的哪里。在之前的地方,就已经进了死循环没有出来。

 #include<stdio.h>
#include<stdlib.h>

#define SIZE 1000

#define TRUE 1
#define FALSE 0

int
main()
{
    char sieve[SIZE];
    char *sp;
    int number;
    for(sp=sieve;sp<&sieve[SIZE];)
        *sp++=TRUE;
    //我在这里,之前写的是*sp,但实际上应该是*sp++
    for(number=3;;number+=2){
        sp=&sieve[0]+(number-3)/2;
        if(sp>=&sieve[SIZE])
            break;
    while(sp+=number,sp<&sieve[SIZE])
        *sp=FALSE;
        }
    printf("2n");
    for(number=3,sp=&sieve[0];
        sp<&sieve[SIZE];
        number+=2,sp++){
            if(*sp)
                printf("%dn",number);
        }
    return EXIT_SUCCESS;
}

解决方案二:

while(number%3==0||number%5==0)
*sp=FALSE;
}
死循环,目测需要加上number++;

解决方案三:

单步调试下程序,看看是卡在哪里了。

解决方案四:

while(number%3==0||number%5==0)//这个要改成if吧
*sp=FALSE;
还有第一个for循环也退不出吧,没大括号

            完全不知道写的什么,参考http://blog.csdn.net/chengyingzhilian/article/details/7314851
时间: 2024-08-02 03:45:52

筛法选择素数,可以运行,但是没有输出,printf那句没有运行的相关文章

求助高手,写了一个代理,统计并输出数据到excel中,手工运行代理,输出数据成功;自动运行代理则不输出excel。

问题描述 求助高手,写了一个代理,统计并输出数据到excel中,手工运行代理,输出数据成功:自动运行代理则不输出excel.SubInitialize'------------------------------------------------------'function:thisagentrunonceaday,inordetoexportdatatoTS2'------------------------------------------------------OnErrorGoto

数据结构 进制转换问题 编译能够通过 但是最后代码运行结果没有输出啊!!

问题描述 数据结构 进制转换问题 编译能够通过 但是最后代码运行结果没有输出啊!! #include #include #include #define OK 1 #define ERROR -1 #define OVERFLOW -1 #define ENDFLAG 0 #define STACK_INIT_SIZE 100//初始分配量 #define STACKINCREMENT 10//增量 typedef int Status; typedef int SElemType; typed

ffmpeg-求助!在cmd中运行ffmped可以输出flv文件,在.net中调用却不能输出,代码如下

问题描述 求助!在cmd中运行ffmped可以输出flv文件,在.net中调用却不能输出,代码如下 public static bool changeVideoType(string fileName string playFile) { //获取视频转换工具的路径 string ffmpeg = System.Web.HttpContext.Current.Server.MapPath(""../"") + ffmpegtool; //获取需要转换的视频路径 st

c语言-此程序为何当选择1的时候没有矩阵输出,好像是形参与实参的关系错了,求解释,求改正。

问题描述 此程序为何当选择1的时候没有矩阵输出,好像是形参与实参的关系错了,求解释,求改正. // juzhen 2.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "stdlib.h" typedef struct mat { int nRow; /* 行数 / int nCol; / 列数 / int pData; /* 指向矩?

printf-cfree运行逆序输出无法print

问题描述 cfree运行逆序输出无法print #include #include /* #include #include */ #define maxn 105 int a[maxn]; int main() { int x, n = 0; while(scanf("%d", &x) == 1) a[n++] = x; int i = n-1; for(;i >= 1; i--) { printf("%d", a[i]); } system(&qu

顺序栈入栈时输入入栈元素回车之后不能够运行,需要再输入个字节才能运行。预计主函数存在问题。

问题描述 顺序栈入栈时输入入栈元素回车之后不能够运行,需要再输入个字节才能运行.预计主函数存在问题. #include #include #define MAXSIZE 100 //顺序栈的存储空间的初始分配量 #define SElemType int typedef struct { SElemType *base; SElemType *top; int stacksize; } SqStack; //栈的初始化 void InitStack(SqStack *S) { S->base=(

怎么在代码里判断当前是调试运行(F5)还是不调试直接运行(Ctrl+F5)呢?

问题描述 怎么在代码里判断当前是调试运行(F5)还是不调试直接运行(Ctrl+F5)呢? 解决方案 解决方案二:一般用System.Diagnostics.Debug.Write来输出调试信息就行了,发布版本不会插入这些语句解决方案三:我需要判断到底是不是调试执行的,有没有这样的方法呢?谢谢了~~~引用1楼jinjazz的回复: 一般用System.Diagnostics.Debug.Write来输出调试信息就行了,发布版本不会插入这些语句 解决方案四:只能判断release和debug把

查询在应用程序运行得很慢, 但在SSMS运行得很快的原因探究

原文:查询在应用程序运行得很慢, 但在SSMS运行得很快的原因探究 查询在应用程序运行得很慢, 但在SSMS运行得很快的原因探究 -理解性能疑点 1      引言 内容来自http://www.sommarskog.se/query-plan-mysteries.html(Slow in the Application, Fast in SSMS?) [看国内没有人好好翻译过这篇.全部翻译实在太长了,就挑主要的意译了.如果要看完整版,还是建议读原文.先翻译了一半,先解决了眼前的问题.剩下的一般

android-安卓开发,eclipse直接使用“Run as”用手机运行和先打包再发送到手机上运行,结果不同?

问题描述 安卓开发,eclipse直接使用"Run as"用手机运行和先打包再发送到手机上运行,结果不同? 我最近遇到了一个bug,测试人员怎么也通不过测试. 后来我发现,我每次开发的时候都是用数据线连接手机,直接用eclipse的"Run as Android Application"选择连线的手机运行,每次运行到指定位置,都不会出错. 后来我发现,同样的代码,一点都不改,选择导出apk包到D盘,然后从D盘发送这个apk到手机上再运行,到指定位置就出错!不管是否签