\ 我為我的測驗創建了一個練習專案,但我似乎無法解決這個問題。我需要一個獲取輸入的函式,當在另一個函式中呼叫時,輸入將用于解決問題。\這是我的代碼
#include <stdio.h>
int get()
{
int one,two,three,four;
scanf("%d %d %d %d", &one, &two, &three, &four);
return one,two,three,four;
}
int add()
{
int one,two,three,four;
int result1, result2, result3;
get();
result1 = one two;
if (result1 == three)
{
result2 = four - three;
result3 = result2 four;
printf("Added %d, 5th number is %d", result2, result3);
}
else
{
printf("error, %d %d %d %d", one, two, three, four);
}
}
int main()
{
add();
return 0;
}
當我將 scanf 陳述句放在函式中時,它可以作業。但是當我使用該函式獲取輸入時,我得到不同的數字
uj5u.com熱心網友回復:
在函式的return陳述句中get
return one,two,three,four;
有一個帶有逗號運算子的運算式。它的值是最后一個運算元的值。也就是函式回傳變數的值four。
而且呼叫者不使用回傳值。因此,您正在處理函式中未初始化的變數add。
如果您需要回傳四個值,則通過參考回傳它們的槽引數。例如
void get( int *one, int *two, int *three, int *four;)
{
scanf("%d %d %d %d", one, two, three, four);
}
并呼叫函式
get( &one, &two, &three, &four );
或者該函式可以回傳一個整數,該整數將表明輸入是否成功,例如
int get( int *one, int *two, int *three, int *four;)
{
return scanf("%d %d %d %d", one, two, three, four) == 4;
}
add您可以在執行計算之前檢查函式中的回傳值。
請注意該函式add不回傳任何內容。因此將其回傳型別宣告為void.
void add( void );
uj5u.com熱心網友回復:
- 在函式 get() 中,變數一、二、三、四存盤在堆疊中,并且在該函式之外不可用。
- get() 只能回傳一個值
- 您必須將回傳值存盤到特定變數 result1= get()
- 如果你想一次回傳更多資訊,你應該使用 struct
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/530467.html
上一篇:如何在結構上執行除法運算子?
