我为一门课程编写了这段代码。
#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上试过它的人交谈了,他说代码可以运行。
但是没有出现任何错误。
任何想法如何解决?
答案 0 :(得分:5)