Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите написать код на C++

Дарья Ученик (241), открыт 1 неделю назад
Дана последовательность натуральных чисел (одно число в строке), завершающаяся числом 0. Определите среднее значение элементов этой последовательности (без учета последнего нуля). В этой задаче нельзя использовать глобальные переменные. Функция получает данные, считывая их с клавиатуры, а не получая их в виде параметра. В программе результат записывается в две переменные, которые передаются в функцию по ссылке. Гарантируется, что последовательность содержит хотя бы одно число (кроме нуля)
4 ответа
B A L T I K A Профи (596) 1 неделю назад
так помочь или сделайте все за меня?
GGG Просветленный (35144) 1 неделю назад
 #include <iostream> 
using namespace std;

void calculateAverage(double& average, int& count) {
int num;
int sum = 0;
count = 0;

// Считываем числа до тех пор, пока не встретим 0
while (true) {
cin >> num;
if (num == 0) {
break;
}
sum += num;
count++;
}

// Вычисляем среднее значение
if (count > 0) {
average = static_cast<double>(sum) / count;
} else {
average = 0;
}
}

int main() {
double average;
int count;

calculateAverage(average, count);

cout << "Среднее значение: " << average << endl;
cout << "Количество чисел: " << count << endl;

return 0;
}
ДарьяУченик (241) 1 неделю назад
спасибо большое!
Андрей Высший разум (460756) 1 неделю назад
 #include <iostream>  

using namespace std;

void input(int &sum, int &cnt) {
int v;
cnt = -1;
sum = 0;
do {
cin >> v;
++cnt;
sum += v;
} while(v);
}

int main() {
int sum, cnt;
input(sum, cnt);
cout << double(sum) / cnt;
}
Вариант, когда функция возвращает сумму и количество.

Из текста вопроса абсолютно непонятно, что именно должна возвращать функция в двух параметрах. Если вычислять среднее сразу в функции и возвращать среднее и количество (как сделала нейросеть в соседнем ответе), то это лишено смысла, т.к. это самое количество нигде не будет использовано.
АндрейВысший разум (460756) 1 неделю назад
Забавно, что уже вторая нейросеть не может адекватно обработать фразу:
Гарантируется, что последовательность содержит хотя бы одно число (кроме нуля)
и тупо впихивает бессмысленную проверку count > 0.
Владислав Дмитриев Ученик (102) 1 неделю назад
 #include <iostream>   
using namespace std;

void calculateAverage(double& average, int& count) {
int num;
int sum = 0;
count = 0;

// We read the numbers until we meet 0
while (true) {
cin >> num;
if (num == 0) {
break;
}
sum += num;
count++;
}

// Calculate the average value
if (count > 0) {
average = static_cast<double>(sum) / count;
} else {
average = 0;
}
}

int main() {
double average;
int count;

calculateAverage(average, count);

cout << "Average: " << average << endl;
cout << "Number of numbers: " << count << endl;

return 0;
}
Похожие вопросы