変数ratePerHour、hoursWorked、bonus、overtimeSalaryを計算して合計給与を計算するプログラムを作成しています。すべてうまく動作しますが、実行しようとすると、変数の入力値は格納されず、計算も行われません。関数の問題(char *プロンプト) - 計算
私は問題があるため、私のreadNumber機能の間違った何かをしていると思う:
double readNumber(char *prompt) {
double val;
//print the prompt:
printf("%s", prompt);
scanf(" %lf", &val);
if (scanf("%lf", &val) != 1) {
printf("Invalid input.\n");
exit(0);
}
また別の問題は、彼はボーナスを受け取るか、またはされていない場合は、プログラムがユーザーに尋ねるべきであり、ユーザがn
を置けば、それはshouldnボーナスを入力するように頼んではいませんが、何らかの理由で私のプログラムがします。
char readYesOrNo(char *prompt) {
char yn = 'n';
//display the prompt:
printf("%s", prompt);
yn = scanf(" %c", &yn);
//return the value
return(yn);
}
ので、私は、私は私のプログラムがどのように見えるかの写真を添付します値を格納すると間違って何かがあると思うゼロとして最終的にそれは私の計算を示しています。私は本当にそれで苦労してきたので、私は本当に助けに感謝します。
あなたのコードサンプルは複雑なので、コードとコメントは区別できません。それは人々が手助けするのを難しくします。 'yn = scanf("%c "、&yn)'という形式の文は、 'yn'に値を読み込み、' scanf()の戻り値で上書きすることで直ちに破棄します。 ' - ' int'から 'char'に切り詰められます)。 – Peter
あなたは 'readNumber()'に 'exit(0);'をつけたくありません。代わりに 'return val;'が必要でしょう。また、コメント記法を使用してコードにコメントを埋め込んでください。あなたのコードは非常にCに似ており、非常にun-C++に似ています。 –
テキストを画像ではなくテキストとして送信してください! – Olaf