我们被要求编写一个程序来生成斐波那契数列作为我们的作业。所以我写了一个程序来生成前 n 个斐波那契数。这是我的第一个代码,它可以正常工作
# include <stdio.h>
void main()
{
int a = -1, b = 1, c = 0, i, n, sum = 0 ;
printf("Enter the limit : ") ;
scanf("%d", &n) ;
printf("\nThefibonacci series is : \n\n") ;
for(i = 1 ; i <= n ; i++)
{
c = a + b ;
printf("%d \t", c) ;
b=c;
a=b;
}
}
所以我尝试了各种组合,我发现如果我将第 12 行和第 13 行互换,我的代码会运行良好。IE
# include <stdio.h>
void main()
{
int a = -1, b = 1, c = 0, i, n, sum = 0 ;
printf("Enter the limit : ") ;
scanf("%d", &n) ;
printf("\nThefibonacci series is : \n\n") ;
for(i = 1 ; i <= n ; i++)
{
c = a + b ;
printf("%d \t", c) ;
a=b;
b=c;
}
}
这是相同的逻辑对。为什么第一个代码给我错误的输出?
什么是分段错误?(我的编译器经常告诉我我的代码中有分段错误)
PS-我是一个初学者。刚学 c 语言三周,我们正在学习循环。