Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
oGvDo
0 / 0 / 0
Регистрация: 13.11.2011
Сообщений: 11
#1

Не правильно выводит ответ на экран

16.12.2011, 13:55. Просмотров 420. Ответов 8
Метки нет (Все метки)

Даны 2 одномерных массива (вводятся с клавиатуры), проверить, являются ли элементы 2-го, квадратами элементов 1-го массива. Проблема с выводом ответа, как сделать так, чтобы при выполнении условия: Выводило "Да являются квадратами", если не выполняется то: "Не являются".
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
#include <iostream.h>
#include <conio.h>
#include <math.h>
int*initAr (int n)
 {
  int*b = new int[n];
  for (int i=0; i<n; i++)
  cin>>b[i];
  return b;
 }
  void main(void)
  {
   int n;
   cout<<"Vvedite kollichestvo elementov:";
   cin>>n;
   cout<<"Zapolnite massiv 1: \n";
   int*Ar1 = initAr(n);
   cout<<"Zapolnite massiv 2: \n";
   int*Ar2 = initAr(n);
    for (int i = 0;i<n;i++)
 
    if (Ar1[i]==pow(Ar2[i],2))
    cout<<"Da,yavlyautsya kvadratami";
    else cout << "Net,ne yavlyautsya kvadratami"<<endl;
    getch();
    }
0
Миниатюры
Не правильно выводит ответ на экран  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2011, 13:55
Ответы с готовыми решениями:

Не правильно выводит ответ, найти нули в сроке матрицы
Вот задача: Дана матрица MxN, если в строке все ноли вывести 1, если нет ноля...

Не правильно выводит на экран
Написал программу, которая должна перевернуть текст в обратном порядки но...

Написать программу, которая выводит пример на вычитание, запрашивает ответ пользователя, проверяет его и выводит сообщение о правильности
Написать программу, которая выводит пример на вычитание (в пределах 100),...

Неправильно выводит ответ
#include &quot;iostream&quot; using namespace std; int main () { int a, i, l, n,d=0;...

выводит неверный ответ
#include &lt;iostream.h&gt; #include &lt;stdio.h&gt; const int n = 100; int main (int...

8
Wanderer1
23 / 23 / 11
Регистрация: 26.03.2011
Сообщений: 54
16.12.2011, 14:18 #2
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
#include <iostream.h>
#include <conio.h>
#include <math.h>
int*initAr (int n)
 {
  int*b = new int[n];
  for (int i=0; i<n; i++)
  cin>>b[i];
  return b;
 }
  void main(void)
  {
   int n,count=0;
   cout<<"Vvedite kollichestvo elementov:";
   cin>>n;
   cout<<"Zapolnite massiv 1: \n";
   int*Ar1 = initAr(n);
   cout<<"Zapolnite massiv 2: \n";
   int*Ar2 = initAr(n);
    for (int i = 0;i<n;i++)
 
    if (Ar1[i]==pow(Ar2[i],2)) count++;
    if (count==n)
    cout<<"Da,yavlyautsya kvadratami";
    else cout << "Net,ne yavlyautsya kvadratami"<<endl;
    getch();
    }
попробуй так.
да и, мне кажется pow(Ar2[i],2) возводит в квадрат элемент второй матрицы, а не первой...
0
I.M.
567 / 550 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
16.12.2011, 14:58 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for(int i = 0;i < n;++i)
{
   if(Ar1[i] != Ar2[i]*Ar2[i])
   {
      cout << "Net,ne yavlyautsya kvadratami" << endl;
      getch();
      return;
   }
}
 
cout << "Da,yavlyautsya kvadratami";
getch();
return;
0
oGvDo
0 / 0 / 0
Регистрация: 13.11.2011
Сообщений: 11
16.12.2011, 16:19  [ТС] #4
Wanderer1, не, чет не пашет. Всегда выдает "Da,yavlyautsya kvadratami", даже если не являются.
0
Wanderer1
23 / 23 / 11
Регистрация: 26.03.2011
Сообщений: 54
16.12.2011, 16:29 #5
Цитата Сообщение от oGvDo Посмотреть сообщение
Wanderer1, не, чет не пашет. Всегда выдает "Da,yavlyautsya kvadratami", даже если не являются.
вот это означает, что элемент первой матрицы являтся квадратом элемента второй матрицы
C++
1
if (Ar1[i]==pow(Ar2[i],2))
для твоей задачи нужно изменить эту строку на
C++
1
if (Ar1[i]*Ar1[i]==Ar2[i])
1
oGvDo
0 / 0 / 0
Регистрация: 13.11.2011
Сообщений: 11
16.12.2011, 16:42  [ТС] #6
Все, работает! Спасибо!
0
accept
4833 / 3255 / 454
Регистрация: 10.12.2008
Сообщений: 10,569
16.12.2011, 19:33 #7
Цитата Сообщение от I.M. Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for(int i = 0;i < n;++i)
{
   if(Ar1[i] != Ar2[i]*Ar2[i])
   {
      cout << "Net,ne yavlyautsya kvadratami" << endl;
      getch();
      return;
   }
}
 
cout << "Da,yavlyautsya kvadratami";
getch();
return;
нужно выставить флаг, а после цикла проверять его
0
go
Эксперт С++
3636 / 1368 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
16.12.2011, 19:42 #8
Цитата Сообщение от accept Посмотреть сообщение
нужно выставить флаг, а после цикла проверять его
Зачем??? Тот кусок кода, что Вы скопировали рабочий
0
accept
4833 / 3255 / 454
Регистрация: 10.12.2008
Сообщений: 10,569
16.12.2011, 20:19 #9
Цитата Сообщение от go Посмотреть сообщение
Зачем??? Тот кусок кода, что Вы скопировали рабочий
в нём копипаст
0
16.12.2011, 20:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2011, 20:19

Машина Тьюринга. Выводит неправильный ответ
Пишу машину Тьюринга для разных команд, в конце выводит неправильный результат,...

Code::Blocks выводит не правильный ответ
Выводит не правильный ответ. Как исправить ошибку ?

Испраить ошибку - не считает(не выводит ответ)
привет вам программисты) написал прогу, все запускается но почемуто не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru