私は1000までのユーザー入力を受け取り、入力の各数を追加する関数を書いています。もしそうであれば、ユーザ入力1000を超える機能「はその数はハイにある」印刷されたユーザ入力12機能出力C関数の戻りエラー
3。私は、ステートメントを印刷する関数を得ることができますが、それはまた、14を出力...私はなぜ理解できませんか?
私はそこに他のバグは私のコードでは、おそらくですが、今、これは私を殺しているものです理解しています。助けることができるものはどれも素晴らしいだろう。
ここに私のコードです。
#include <stdio.h>
int SummItAll(int value);
int main()
{
int userNumber=0, result;
printf("Enter a positive number \n ");
scanf("%d", &userNumber);
result = SummItAll(userNumber);
printf("%d\n", result);
return 0;
}
int SummItAll(int value)
{
int a=value, b, c, d, f, g;
if(a < 100)
{
b = a/10;
c = a%10;
return b+c;
}
else if(a >= 100 && a < 1000)
{
b = a/100;
c = a%100;
d = c/10;
f = c%10;
return b+d+f;
}
else
return printf("That number is to high!\n");
}
これは実際のコードではないと思われます。 'printf()'の戻り値は、(エラーが発生しない限り)出力する文字の数であり、 'main()'に関数戻り値を出力しています。私はあなたのACTUALコードが長さが14の異なる文字列を印刷していると思います。 – Peter
あなたは正しいですこれを転記する前に最後の印刷文を変更しました。以前は長さ14文字の "Thats to high"でした。私はputsがprintf()の代わりに働くことを期待していましたが、それは10を返しました...迅速な応答に感謝します。 – jojonac