繁体   English   中英

程序挂在Linux和Windows上,似乎可以在Mac上运行

[英]Program hangs on Linux and Windows, Seems to work on Mac

我为课程编写了这段代码。

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

int main()
{
    int i;
    int numbersToPrint;
    int fibonacci[50] = {0,1};
    int defaultOrCustom;

    printf("Do you want to run the default length of 15 numbers, or do you want to define your own length?\n1.Default\n2.Custom\n");
    scanf("%i", &defaultOrCustom);

    switch (defaultOrCustom){
            case 1:
                for (i = 2; i < 15; i++)
                {
                    fibonacci[i] = fibonacci[i-1] + fibonacci[i-2];
                    printf("%i, ", fibonacci[i]);
                }
            break;

            case 2:
                printf("How many numbers in the sequence do you want to print?\n");
                scanf("%i\n", &numbersToPrint);
                printf("%i", numbersToPrint);
                for (i = 2; i< numbersToPrint; i++)
                {
                    fibonacci[i] = fibonacci[i-1] + fibonacci[i-2];
                    printf("%i\n", fibonacci[i]);
                }
            break;

            default:{
                printf("Please choose a valid option:\n");
                main();
            }
    }
    return 0;
}

我的问题似乎是该行在第2种情况下挂起:

printf("%i", numbersToPrint);

我已经在Linux和Windows上对此进行了验证,并与在Mac上尝试过的人进行了交谈,他说该代码有效。

但是没有错误显示。

任何想法如何解决?

更改:

scanf("%i\n", &numbersToPrint);

scanf("%i", &numbersToPrint);

请参阅c-faq以使用'\\n'挂起scanf

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM