// Question is tagged for C++, but the code is in C.
// I will change your code a bit, because you had quite a few mistakes.
#include <stdio.h>
void main ()
{
int sum = 0; // sum of all numbers you entered, to find average you only need total sum and number of entries
int numOfEntries; // number of entries (numbers taken from input)
int inputNum; // variable where you will write numbers from input one by one
double average; // Not really needed, but it can help to simplify the problem to you.
printf("Enter numbers: ");
do
{
scanf_s("%d", &inputNum);
sum += inputNum;
numOfEntries++;
} while (inputNum != 0); // I understand you read numbers until you read value 0.
// int / int will give you rounded number, not the true average, so we need to convert one of the operands to a real number, in this case double
// double / int or int / double will give you a real number as result, which will have true average value, and that is why I converted sum to a real number
if (numOfEntries != 0)
average = (double)sum / numOfEntries;
else
average = 0;
printf("The average of your numbers is; %f\n", average); // Here I did it again - print double instead of int to get true value.
}
これを変更するのはさらに簡単です:
....
double sum = 0;
...
average = sum / numOfEntries; // Here sum is already double, not int, so you don't need to change it manually.
...
さて、それを2倍に機能させたい場合、唯一の違いは次のとおりです。
double sum = 0;
double inputNum;
scanf_s("%lf", &inputNum);
average = sum / numOfEntries;
つまり、話をまとめると、キーボードから数値を入力する変数、これまでに入力したすべての数値の合計を保持する変数、キーボードから入力した数値の数をカウントする変数があります。値として0を入力するまで数値を入力すると、プログラムはループを終了します。平均数の式は、すべての合計を数で割ったものです。整数の場合、実数への変換を追加する必要があります。そうしないと、正確な結果が得られません。
私はあなたを混乱させなかったと思います。:D