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(;;), хіба це не суперечить темі? І як взяти код в рамочку?)
цикли for, while, do while – це різні форми одного і того ж – кожен з них може бути переписаний через будь-який інший. Так що різниці особливої немає.
[quote]цикли for, while, do while - це різні форми одного і того ж - кожен з них може бути переписаний через будь-який інший. Так що різниці особливої немає.[/quote] Я це прекрасно розумію,однак для циклів for() є окрема тема. Тобто,. за логікою або зібрати всі цикли в одну тему, або приділити увагу розкриттю оголошеної теми.
як взяти код в рамочку? Це ** розмітка тексту ** вставкою тегів BBCode. Для того, щоб розмітити ** програмний код ** потрібно записати приблизно так (тільки замість квадратних дужок [ ] писати кутові ), ось так: [код] … тут ви пишете свій код … [/код] (почитайте пошуком про BBCode для більш докладного пояснення)
cout << "Сумма не четных чисел: " << endl; while (a != Ь + 1) { if (a % 2 != 0) { сума + = а; if (A == B – 1 || A == B) { cout << a; } else cout << a << " + "; } A ++; } cout << " = " << sum << endl;
cout << "Сумма не четных чисел: " << endl; while (a != Ь + 1) { if (a % 2 != 0) { сума + = а; 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.
Для того, щоб розмітити ** програмний код ** потрібно записати приблизно так (тільки замість квадратних дужок [ ] писати кутові ), ось так:
[код]
… тут ви пишете свій код …
[/код]
(почитайте пошуком про BBCode для більш докладного пояснення)
Конечно, редактор повідомлень тут жахливий!
спасибо
[код з ++]
int main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int a, b;
int sum = 0;
cout << "Введите диапазон чисел" << endl;
cout <> a;
cout <> b;
cout << "Сумма не четных чисел: " << endl;
while (a != Ь + 1) {
if (a % 2 != 0) {
сума + = а;
if (A == B – 1 || A == B) {
cout << a;
}
else cout << a << " + ";
}
A ++;
}
cout << " = " << sum << endl;
return 0;
}
[/код]
[код]
int main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int a, b;
int sum = 0;
cout << "Введите диапазон чисел" << endl;
cout <> a;
cout <> b;
cout << "Сумма не четных чисел: " << endl;
while (a != Ь + 1) {
if (a % 2 != 0) {
сума + = а;
if (A == B – 1 || A == B) {
cout << a;
}
else cout << a << " + ";
}
A ++;
}
cout << " = " << sum << endl;
return 0;
}
[/код]