我正在編寫一個C程序來獲得斐波納契數字,用戶需要把前2個數字和序列從那裏開始。這裏是我的代碼:斐波納契序列用戶輸入前2個數字
#include <stdio.h>
#define MAX_SIZE 100
int main()
{
int i, input[MAX_SIZE];
printf("please Enter first 2 digit of the Sequence\n");
scanf("%d, %d" , &input[0], &input[1]);
for (i = 2; i < MAX_SIZE; i++)
{
input[i] = input[i-2] + input[i-1];
printf("%d\n", input[i]);
}
return 0;
}
但是當我運行一個輸入2和3的代碼中,我得到這樣一個1499141456
輸出,這顯然不是序列。請幫忙。
是不是好些了嗎?我不明白你通過刪除逗號,我得到2用戶輸入。 – user2962635
檢查'scanf'的返回值。如果不是2,那麼它不會讀取兩個數字,而它沒有讀取的數字是未定義的(可能是任何東西)。您的'scanf'格式爲'%d,%d',這意味着它需要兩個數字之間的逗號。如果在提示時沒有輸入逗號,則不會解析第二個數字。 –