я должен написать программу, которая позволяет вычислить среднее арифметическое из произвольного числа значений (выбранного пользователем)Упражнения: для цикла и массива
Это будет выходы:
Количество: 34
Количество: 36
Количество: 44
Количество: // и я выбираю, чтобы остановить ввод нажатием
// Выходы:
Он был введён 3 номера и насчитайте является: 38
Конечно, я забыл после того, что я сделал:
for (int x = 0; x < 50; x++){
cout << "Number: ";
cin >> number[x];
cout << "You have inserted the " << x << " element of the array;" << endl;
sum += number[x];
avarage = sum/number[x];
nEelementi = number[x];}
так я бегу программа, введите некоторые цифры, нажмите что-то вроде ctrl + d или попытайтесь добавить что-то в код .. но это только переход от первого к последнему элементу массива без значений, потому что не введен, конечно .. и затем напечатайте абсурдную сумму и сумму.
Я знаю, что мне не нужен массив, чтобы это сделать, но это необходимо из упражнения .. также упражнение только для использования для циклов или массивов while или while. Что мне нужно, это остановить процесс ввода и рассчитать сумму и разрешить только то, что я написал.
редактирование1. Я попытался нырнуть, написав для (x = 0; x < n, x ++), потому что это имело смысл для меня, но я думаю, что он «думает» n, писал так, бесконечно, потому что результаты равны 0 (потому что предел числа, деленного на бесконечность, равен 0) .. так что я начал злиться. Теперь я начал думать, что было бы проще использовать цикл while! и написали
#include <iostream>
using namespace std;
int main() {
int num[50];
double sum = 0;
double average = 0;
int cont;
int end = 0;
while (cont < 50) {
cout << "num: ";
cin >> num[cont];
sum += num[cont];
cont++;
cout << "Want to continue 0 = sì, 1 = no";
cin >> end;
if (end == 1) {break;}
}
average = sum/cont;
cout << "You have insert " << cont << " elements" << endl;
cout << "LThe sum is: " << sum << endl;
cout << "The avarage is: " << average << endl;
return 0;
}
НО все еще не работает. Мой профессор говорит, что вы можете остановить номер входа, нажав ctrl + d, чтобы я не делал ничего хорошего. Извините за поздний ответ, но мне также нужно перевести код. Надеюсь, весь перевод будет хорошим :)
изменить2.
#include <iostream>
int main() {
int sum = 0;
int num;
while (std::cin) {
std::cout << "Number: ";
std::cin >> num;
}
if (std::cin >> num) {
sum += num;
num++;
}
else {
std::cin.clear();
std::cout << "Input interrupted" << std::endl;
}
std::cout << "Sum is " << sum << std::endl;
std::cout << "You have entered " << num << " numbers" << std::endl;
return 0;
}
Я люблю этот новый код, очень простой и понятный для меня, но я не был в состоянии добавить операцию суммы, она выводит только 0! (оставив в среднем) А также я не смог определить и отобразить, сколько цифр я ввел. Последняя строка кода является лишь примером того, что я хочу сделать.
edit3.
Наконец-то я сделал это.
#include <iostream>
using namespace std;
int main(){
double numero;
int index = 0;
double somma = 0.;
cout << "Inserire un numero: ";
while(cin)
{
if (cin >> numero)
{
somma = somma + numero;
index++;
cout << "Inserire un numero: ";
}
else
{
cout << "Input interrotto" << endl;
}
}
cout << "Sono stati inseriti " << index << " numeri e la lora media è:
<< somma/index << endl;
return 0;
}
Большое спасибо!
P.S.В конце концов, мне не нужно использовать массив, это просто просто
не очищенный вопрос. что тогда? – jace
у вас есть вопрос? – pm100
Зачем вам нужен массив? Просто прочитайте номер, добавьте его в сумму (изначально нуль), подсчитайте количество чисел, которые вы читаете, и определите среднее значение по сумме/счету, когда закончите. – WhozCraig