stanefimov
?>

Выручайте нужно узнать почему не считает: найти произведение всех целых чисел от a до 20 (значение a вводится с клавиатуры: 1 < =a < = 20 #include using namespace std; void main() { int a; cin > > a; int res = 1; for (int i = a; i < = 20; ++i) res *= i; cout < < a; return ; }

Информатика

Ответы

pravovoimeridian
#include <iostream>
using namespace std;
int main() {
int a;
cin>>a;
long res = 1;
for (int i=a; i<=20; ++i)
res *= i;
cout<<res<<"\n";
return 0;
}

Значение 20 (выделено в программе) вызывает арифметическое переполнение при небольших а. Попробуйте задать a=19 или 18.
videofanovitch
Если вам надо включать в произведение:
#include <iostream>
using namespace std;
void main()
{
int a;
cin >> a;
int res = 1;
if (a < 20) 
{
for (int i = a; i <= 20; ++i)
res = i*res;
}
cout << res;
system("pause");
}

Если не надо то измените i<=20 на i<20
vikapar2646

Да, верно.

(Пример с игровым диском, DVD-disc)

На игровом диске имеется два вида поверхностей с данными: поверхностный пластик, который закрывает диск снизу, и алюминиевое хранилище, являющееся отражающей частью. Если пластик слегка поцарапан, то считывание данных с алюминиевой части может затрудниться и будут возникать ошибки. В этой ситуации проблему можно решить, если заполнить царапины густым раствором вроде вазелина.

Если поцарапана алюминиевая поверхность, то починить диск невозможно. Это случается при глубоких царапинах. Глубокие круговые царапины невозможно устранить. Такую игру нужно вернуть или приобрести новую копию.
nadyatsoi

using namespace std;

#include <algorithm>

#include <iostream>

#include <vector>

#include <ctime>

int main() {

vector<int> arr;

srand(time(0));

int N = 10;

int min = 9999999, minIndex;

int average = 0;

for(int i = 1; i<=N; ++i) {

 arr.push_back(rand());

 cout << arr[i-1] << " ";

 if(arr[i-1]<min) {

  min = arr[i-1];

  minIndex = i-1;

 }

 average+=arr[i-1];

}

cout << endl << "Min: " << min << endl << "Average: " << average/N << endl;

swap(arr[minIndex], arr[arr.size()-1]);

for(int i = 1; i<=N; ++i) {

 cout << arr[i-1] << " ";

}

cout << endl << " > average: ";

for(int i = 1; i<=N; ++i) {

 if(arr[i-1]>average/N) {

  cout << arr[i-1] << " ";

 }

}

}

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Выручайте нужно узнать почему не считает: найти произведение всех целых чисел от a до 20 (значение a вводится с клавиатуры: 1 < =a < = 20 #include using namespace std; void main() { int a; cin > > a; int res = 1; for (int i = a; i < = 20; ++i) res *= i; cout < < a; return ; }
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Сергеевна-Иван1045
hamelleon43
Бегун-Марина
mikhailkirakosyan
evoque2014
aleksey7800
Valerii276
Vasilevna_Utenkova651
Aleksandr-Andrei
kirik197308
braigon974
energycomplect5914
narkimry134
randat887040
Demina-Khokhlov584