Федя записался на крутой онлайн курс по программированию. Там, как обычно, надо решать много задач. За разные задачи дают разное количество баллов.
Однажды Федя задумался, сколько баллов он уже набрал в курсе. Решенных задач оказалось очень много. Поэтому Федя написал программу, которая суммирует баллы за задачи.
Поскольку количество решенных задач всегда меняется, Федя решил вводить в программу только баллы за задачи (без указания количества задач). Когда решенные задачи заканчивались Федя вводил 0 – это число служило признаком окончания ввода.
А Вы сможете написать программу, которая суммирует вводимые числа до тех пор, пока не будет введен 0.
Входные данные
Вводится несколько строк. В каждой строке находится целое число x (0<x≤100) - балл очередной задачи. В последней строке находится число 0 – признак окончания ввода. Гарантируется, что будет введено как минимум две строки.
Выходные данные
Вывести одно число – общее число баллов за все задачи.
входные данные
20
50
30
40
0
выходные данные
140
входные данные
2
10
5
0
выходные данные
17
C/C++
Задачу написать на с++ , она не сложная но почему то не получается напишите задачу с помощью цикла
Может будет какое-нибудь пояснение по поводу ввода? Если подается одно целое число в одной строке, программа выше работать будет. Но раз сделан упор на "в каждой строке" то может быть есть особые случаи которые программа должна правильно обрабатывать, к примеру если в строке два числа, то второе игнорировать. Если в строке нет числа - игнорировать строку и т.д. Или будем гадать почему у вас программа не работает? Это в раздел "гадания".
#include <iostream>
int main(){int n=0,t; while(std::cin>>t,t)n+=t; std::cout<<n;}
int main(){int n=0,t; while(std::cin>>t,t)n+=t; std::cout<<n;}
#include <iostream>
int main() {
int points = 0; // initialize total points to 0
int score; // variable to store the score of each problem
// read scores until 0 is entered
while (std::cin >> score) {
if (score == 0) {
break; // exit the loop when 0 is entered
}
points += score; // add the current score to the total points
}
std::cout << points << std::endl; // output the total points
return 0;
}
Объяснение:
Мы используем цикл while для непрерывного считывания оценки каждой задачи. Мы используем оператор потока cin для считывания оценки и сохранения ее в переменной score. Оператор cin возвращает ссылку на поток, которая может быть использована в булевом выражении. Если поток находится в допустимом состоянии (т.е. оценка была успешно считана), выражение принимает значение true, и цикл продолжается. Если поток находится в недопустимом состоянии (т.е. вводимое число не является допустимым целым числом или достигнут конец ввода), выражение оценивается в false, и цикл завершается.
Внутри цикла мы проверяем, равен ли текущий счет 0. Если да, мы используем оператор break для выхода из цикла. В противном случае мы добавляем текущий результат к общему количеству очков с помощью оператора +=.
Наконец, мы выводим общее количество очков, используя поток cout и манипулятор endl для вставки символа новой строки после вывода.
int main() {
int points = 0; // initialize total points to 0
int score; // variable to store the score of each problem
// read scores until 0 is entered
while (std::cin >> score) {
if (score == 0) {
break; // exit the loop when 0 is entered
}
points += score; // add the current score to the total points
}
std::cout << points << std::endl; // output the total points
return 0;
}
Объяснение:
Мы используем цикл while для непрерывного считывания оценки каждой задачи. Мы используем оператор потока cin для считывания оценки и сохранения ее в переменной score. Оператор cin возвращает ссылку на поток, которая может быть использована в булевом выражении. Если поток находится в допустимом состоянии (т.е. оценка была успешно считана), выражение принимает значение true, и цикл продолжается. Если поток находится в недопустимом состоянии (т.е. вводимое число не является допустимым целым числом или достигнут конец ввода), выражение оценивается в false, и цикл завершается.
Внутри цикла мы проверяем, равен ли текущий счет 0. Если да, мы используем оператор break для выхода из цикла. В противном случае мы добавляем текущий результат к общему количеству очков с помощью оператора +=.
Наконец, мы выводим общее количество очков, используя поток cout и манипулятор endl для вставки символа новой строки после вывода.
Изи
#include
using namespace std;
int main() {
int n; cin >> n;
int sum = n;
while (n != 0) {
cin >> n;
sum += n;
}
cout
Похожие вопросы
- Нужно написать программу с вложенным циклом
- Задача(написать надо с использованием for или while. желательно не использовать неизвестные команды для новичка)
- Строки с++, не получается написать никак код
- Помогите с С++! Надо как-то решить задачу с помощью бинарного поиска
- Задачи на тему циклов C++
- [C++] Помогите написать задачу на структуры!
- Как реализовать поиск наибольшего значения в одномерном массиве при помощи циклов.
- Помогите решить задачу,код должен выйти не таким сложным,но что то не выходит
- Прошу помочь с двумя задачами по C++. Есть код моей попытки. Буду рад если напишите проги.
- Не могу написать код на с++ нужно решать через циклы но если у вас другие варианты пишите тоже желательно циклы
Человекоориентированная реализация должна сначала считывать строку, потом преобразовывать ее в число, обрабатывать ошибки ввода и сообщать о них пользователю.