私はCプログラミングクラス用のカロリープログラムを作成していますが、コンパイルすると正しい出力が得られません。例えば、私はカロリーの数を入力して385で、私が最初に入力したカロリーを超えるチップの総数を取得します。私は以下のコードを含んでいます。プログラムはコンパイルしますが、正しい値を与えません
ご協力いただければ幸いです。
#include "stdafx.h"
void calories(int total, int*pizza, int*chips, int*apple, int*mustard)
{
if (total >= 385)
*pizza = (total - 385);
if (total >= 170)
*chips = (total - (*pizza * 385))/170;
if (total >= 80)
*apple = (total - (*pizza * 385) - (*chips * 170))/80;
if (total >= 5)
*mustard = (total - (*pizza * 385) - (*chips * 170) - (*apple * 80))/5;
return;
}
int main(void)
{
int total, pizza, chips, apple, mustard;
printf("Enter the total whole number of calories you would like to eat for your meal: ");
scanf_s("%d", &total);
calories(total, &pizza, &chips, &apple, &mustard);
printf("\n Total= %d", total);
printf("\nSlices of pizza= %d", chips);
printf("\nBags of chips= %d", pizza);
printf("\nSlices of apple= %d",apple);
printf("\nTeaspoons of mustard= %d", mustard);
return 0;
}
整数演算の場合はコードが大量に実行されます。おそらく浮動小数点が必要でした。 IACは、 "私が最初に入力したカロリーを超えるチップの総数を得る"と、それが間違っていると思う理由を投稿する。 – chux
1. 'scanf_s'の戻り値を確認します。2.初期値をゼロに設定します。 –
1)何をしましたか? 2)何が起こると思いますか? 3)代わりに何が起こったのですか?あなたは1に答えましたが、2または3には答えませんでした。 – immibis