#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int i;
for (i = 1; i <= 20; i++)
i = pow(i, 2);
cout << i << endl;
system("pause");
return 0;
}
Выводит число 26, а должно быть:
2
3
9
16
и т. д. до 400
Другие языки программирования и технологии
Помогите с программой на C++! (Вывод квадратов чисел от 1 до 20). Не знаю, что не так.
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int i;
for (i = 1; i <= 20; i++)
double Qi = pow(i, 2);
cout << Qi << endl;
system("pause");
return 0;
}
using namespace std - зло.. . Отучайся от этого костыля.
#include <cmath>
using namespace std;
int main()
{
int i;
for (i = 1; i <= 20; i++)
double Qi = pow(i, 2);
cout << Qi << endl;
system("pause");
return 0;
}
using namespace std - зло.. . Отучайся от этого костыля.
Karl Volf
Вы хотите сказать, что нужно прописывать все команды самому?
#include <iostream>
int main() {
for (int i = 0; ++i <= 20; std::cout << i * i << '\n');
std::cin.get();
}
int main() {
for (int i = 0; ++i <= 20; std::cout << i * i << '\n');
std::cin.get();
}
for (i = 1; i <= 20; i++)
i = pow(i, 2);
гонит цикл обсчёта i (зачем то его переприсваивая на вычисленное по ходу)
а потом i выводится.
надо
for (i = 1; i <= 20; i++){ // !!!группирующая скобка, раз несколько действий внутри
double ii = pow(i, 2); // а не перезапись i
cout << ii << endl;
}
или проще
for (i = 1; i <= 20; i++)cout << i*i << endl;
i = pow(i, 2);
гонит цикл обсчёта i (зачем то его переприсваивая на вычисленное по ходу)
а потом i выводится.
надо
for (i = 1; i <= 20; i++){ // !!!группирующая скобка, раз несколько действий внутри
double ii = pow(i, 2); // а не перезапись i
cout << ii << endl;
}
или проще
for (i = 1; i <= 20; i++)cout << i*i << endl;
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int i;
for (i = 1; i <= 20; i++)
cout << pow(i, 2) << endl;
system("pause");
return 0;
}
#include <math.h>
using namespace std;
int main()
{
int i;
for (i = 1; i <= 20; i++)
cout << pow(i, 2) << endl;
system("pause");
return 0;
}
Совершенно согласна с Лилей Калиде.
Нужны группирующие скобки.
Иначе вы выполняете не весь цикл, а только 1 оператор (при этом изменяя i), а потом когда i станет >20 делаете вывод.
Т. е.
1. i=1; i=pow(1,2)=1; i=i++=1+1=2
2. i=pow(2,2)=4; i=i++=4+1=5
3. i=pow(5,2)=25; i=i++=25+1=26
4. 26>20 поэтому выходим из цикла и выводим i=26
Нужны группирующие скобки.
Иначе вы выполняете не весь цикл, а только 1 оператор (при этом изменяя i), а потом когда i станет >20 делаете вывод.
Т. е.
1. i=1; i=pow(1,2)=1; i=i++=1+1=2
2. i=pow(2,2)=4; i=i++=4+1=5
3. i=pow(5,2)=25; i=i++=25+1=26
4. 26>20 поэтому выходим из цикла и выводим i=26
Похожие вопросы
- Помогите написать программу по C++
- помогите написать программу на c++
- Помогите с программой Dev C++
- Помогите написать программу на C/C++
- Напишите программу!!! Разработать процедуру для вычисления чисел Фибаначи(1+2+3+5+8+13...)
- Помогите написать программу в C++
- Помогите написать программу в C# пожалуйста!
- Помогите написать программу на C++
- Помогите написать программу на C++
- Можете пожалуйста помочь с программой на C++.