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*
Комментарий*

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

ЛаринаЛощаков
Шапкина1531
Valeria123864531
Федоровна-Васильева
schernov
kuliba
Zibuxin3
Светлана-Тигран
Анатольевна
prostopo4ta29
Golubovskayairina
Суравцова_Алексей669
purbuevat56524
info6
maksimovskiy7657