1. Организовать беспрерывный ввод чисел с клавиатуры, пока пользователь не введёт 0. После ввода нуля, показать на экран количество чисел, которые были введены, их общую сумму и среднее арифметическое. Подсказка: необходимо объявить переменную-счетчик, которая будет считать количество введенных чисел, и переменную, которая будет накапливать общую сумму чисел.
Посмотреть код
задача do while c++
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
usingnamespacestd;
intmain()
{
setlocale(LC_ALL,"rus");
intamountDigits=0;// количество введенных чисел
doubletotalSum=0;// общая сумма
doubledigit=0;//
cout<<"Введите числа, для расчета (выйти - 0)\n\n";
do
{
cout<<"Число "<<amountDigits+1<<" = ";
cin>>digit;
if(digit)// если digit любое значение кроме 0(false)
{
amountDigits++;
totalSum+=digit;
}
}while(digit);// пока digit любое значение отличное от 0
я один не допедриваю принцип работы whille??? прога рабочая,но не уверен,что do while нужна.и специально для “выскочек” внес “защиту для дурака” case 9: { /*. Необходимо суммировать все нечётные целые числа в диапазоне, который введёт пользователь с клавиатуры*/
double a = 0; double b = 0; int i = 0; double s = 0;
cout << a; cin >> b; do { if (a < b) { for (i = a; i <= b; i++) { if (i % 2 == 0) { continue; } s += i; cout << "нечетные числа из вашего диапазона\t" << i << endl;
}cout << "сумма этих чисел = \t" << s < b) { for (i = b; i <= a; i++) { if (i % 2 == 0) { continue; } s += i; cout << "нечетные числа из вашего диапазона\t" << i << endl; } cout << "сумма этих чисел = \t" << s << endl; }
break; } while (a == b); cout << "алльенЬ\n"; break; }
int a = 0, b = 0, i = -1; do { a = _getche() - 48; b = a + b; i++; } while (a != 0); if (b == 0) exit(0); cout << "\nСумма = " << b << endl << "Колличество введеных знаков = " << i << endl << "Среднее арефметическое = " << static_cast(b) / i << endl;
По поводу третьей задачи. более менее разобрался с циклами, которые задают высоту фигуры и кол-во пробелов. Но хоть убейте не могу разобраться с циклом, который выводит символ, а именно for (int j = height – 2 * i; j <= height; j++). Пожалуйста кто- нибудь объясните почему переменная j инициализирована именно таким значением. Заранее благодарен!
В условии задачи забыли упомянуть, что операторы вывода символа, пробела и перенос строки можно использовать лишь единожды…вот тогда она становится интересной ;)
“Задачи: циклы while, do while, вложенные циклы” Не понятно почему третья задача решена через for(;;), разве это не противоречит теме? И как взять код в рамочку?)
[quote]Циклы for, while, do while — это разные формы одного и того же — каждый из них может быть переписан через любой другой. Так что разницы особой нет.[/quote] Я это прекрасно понимаю,однако для циклов for() есть отдельная тема. Т.е. по логике либо собрать все циклы в одну тему, либо уделить внимание раскрытию объявленной темы.
как взять код в рамочку? Это **разметка текста** вставкой тегов BBCode. Для того, чтобы разметить **программный код** нужно записать примерно так (только вместо квадратных скобок [ ] писать угловые ), вот так: [code] … здесь вы пишете свой код … [/code] (почитайте поиском про BBCode для более подробного объяснения)
cout << "Сумма не четных чисел: " << endl; while (a != b + 1) { if (a % 2 != 0) { sum += a; if (a == b – 1 || a == b) { cout << a; } else cout << a << " + "; } a++; } cout << " = " << sum << endl;
cout << "Сумма не четных чисел: " << endl; while (a != b + 1) { if (a % 2 != 0) { sum += a; if (a == b – 1 || a == b) { cout << a; } else cout << a << " + "; } a++; } cout << " = " << sum << endl;
Если кому то вдруг интересно, альтернативный вариант решения второй задачи с помощью цикла for. :)
#include
using namespace std;
int main(){
setlocale(LC_ALL, "rus");
int debut;
int fin;
int number;
int sum = 0;
cout << debut;
cout << fin;
for(int i = (debut - 1); i < fin; ++i){
number = debut;
if (number % 2 != 0){
sum = sum + number;
debut = debut + 1;
}
else{
debut = debut + 1;
continue;
}
}
cout << "Сумма нечётных чисел в данном диапазоне: " << sum << endl;
}
я один не допедриваю принцип работы whille??? прога рабочая,но не уверен,что do while нужна.и специально для “выскочек” внес “защиту для дурака”
case 9:
{
/*. Необходимо суммировать все нечётные целые числа в диапазоне,
который введёт пользователь с клавиатуры*/
double a = 0;
double b = 0;
int i = 0;
double s = 0;
cout << a;
cin >> b;
do
{
if (a < b)
{
for (i = a; i <= b; i++)
{
if (i % 2 == 0)
{
continue;
}
s += i;
cout << "нечетные числа из вашего диапазона\t" << i << endl;
}cout << "сумма этих чисел = \t" << s < b)
{
for (i = b; i <= a; i++)
{
if (i % 2 == 0)
{
continue;
}
s += i;
cout << "нечетные числа из вашего диапазона\t" << i << endl;
}
cout << "сумма этих чисел = \t" << s << endl;
}
break;
} while (a == b);
cout << "алльенЬ\n";
break; }
int main()
{
setlocale(LC_ALL, "rus");
int a = 0, b = 0, i = -1;
do
{
a = _getche() - 48;
b = a + b;
i++;
} while (a != 0);
if (b == 0)
exit(0);
cout << "\nСумма = " << b << endl
<< "Колличество введеных знаков = " << i << endl
<< "Среднее арефметическое = " << static_cast(b) / i << endl;
system("pause");
return 0;
}
третья
int main()
{
setlocale(LC_ALL, "rus");
cout << h;
do
{
if(h!=1)
cout << setfill(' ') << setw(h-1) << ' '
<< setfill('^') << setw(k) << '^' << endl;
else
{
cout << setfill('^') << setw(k) << '^' << endl;
}
--h; k += 2;
} while (h);
system("pause");
return 0;
}
По поводу третьей задачи.
более менее разобрался с циклами, которые задают высоту фигуры и кол-во пробелов.
Но хоть убейте не могу разобраться с циклом, который выводит символ, а именно for (int j = height – 2 * i; j <= height; j++).
Пожалуйста кто- нибудь объясните почему переменная j инициализирована именно таким значением. Заранее благодарен!
int main()
{
setlocale(LC_ALL, "rus");
int height = 0; // высота треугольника
cout << height;
for (int i = 0; i = i; j--)
{
cout << "!";
}
for (int j =0; j <= i; j++)
{
cout << '^';
}
for (int j=1; j<= i; j++)
{
cout <<'^';
}
cout << endl;
}
return 0;
}
В условии задачи забыли упомянуть, что операторы вывода символа, пробела и перенос строки можно использовать лишь единожды…вот тогда она становится интересной ;)
“Задачи: циклы while, do while, вложенные циклы”
Не понятно почему третья задача решена через for(;;), разве это не противоречит теме?
И как взять код в рамочку?)
Циклы for, while, do while – это разные формы одного и того же – каждый из них может быть переписан через любой другой.
Так что разницы особой нет.
[quote]Циклы for, while, do while — это разные формы одного и того же — каждый из них может быть переписан через любой другой.
Так что разницы особой нет.[/quote]
Я это прекрасно понимаю,однако для циклов for() есть отдельная тема. Т.е. по логике либо собрать все циклы в одну тему, либо уделить внимание раскрытию объявленной темы.
как взять код в рамочку?
Это **разметка текста** вставкой тегов BBCode.
Для того, чтобы разметить **программный код** нужно записать примерно так (только вместо квадратных скобок [ ] писать угловые ), вот так:
[code]
… здесь вы пишете свой код …
[/code]
(почитайте поиском про BBCode для более подробного объяснения)
Конечно, редактор сообщений здесь ужасный!
спасибо
[code с++]
int main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int a, b;
int sum = 0;
cout << "Введите диапазон чисел" << endl;
cout <> a;
cout <> b;
cout << "Сумма не четных чисел: " << endl;
while (a != b + 1) {
if (a % 2 != 0) {
sum += a;
if (a == b – 1 || a == b) {
cout << a;
}
else cout << a << " + ";
}
a++;
}
cout << " = " << sum << endl;
return 0;
}
[/code]
[code]
int main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int a, b;
int sum = 0;
cout << "Введите диапазон чисел" << endl;
cout <> a;
cout <> b;
cout << "Сумма не четных чисел: " << endl;
while (a != b + 1) {
if (a % 2 != 0) {
sum += a;
if (a == b – 1 || a == b) {
cout << a;
}
else cout << a << " + ";
}
a++;
}
cout << " = " << sum << endl;
return 0;
}
[/code]