重複の可能性:
float と float リテラルを比較した奇妙な出力
したがって、プログラムは一連の数値を読み取り、入力された合計数値で割ることによってその平均を求めます。ただし、最終結果には最後にさらにいくつかの小数が追加されますが、なぜそれが行われるのかわかりません。
この入力の場合: 483, 10, 3051, 188, 200, 0
出力は 786.4 のはずですが、代わりに 786.400024 です。私は何を間違っていますか?よろしくお願いします。
int main(int argc, char** argv)
{
int averageOfNumbers = 0;
printf("Enter the sequence of numbers:");
int nextNumber;
float numberCounter = 0;
do
{
scanf("%d", &nextNumber);
if(nextNumber > 0)
{
numberCounter++;
averageOfNumbers += nextNumber;
}
}
while(nextNumber > 0);
float finalAverage = (float) (averageOfNumbers/numberCounter);
averageOfNumbers = averageOfNumbers/numberCounter;
printf("Average of the numbers in the sequence is %f\n", finalAverage);
}