Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
oGvDo
0 / 0 / 0
Регистрация: 13.11.2011
Сообщений: 11
16.12.2011, 13:55     Не правильно выводит ответ на экран #1
Даны 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();
    }
Миниатюры
Не правильно выводит ответ на экран  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Wanderer1
23 / 23 / 4
Регистрация: 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) возводит в квадрат элемент второй матрицы, а не первой...
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 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;
oGvDo
0 / 0 / 0
Регистрация: 13.11.2011
Сообщений: 11
16.12.2011, 16:19  [ТС]     Не правильно выводит ответ на экран #4
Wanderer1, не, чет не пашет. Всегда выдает "Da,yavlyautsya kvadratami", даже если не являются.
Wanderer1
23 / 23 / 4
Регистрация: 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])
oGvDo
0 / 0 / 0
Регистрация: 13.11.2011
Сообщений: 11
16.12.2011, 16:42  [ТС]     Не правильно выводит ответ на экран #6
Все, работает! Спасибо!
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
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;
нужно выставить флаг, а после цикла проверять его
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
16.12.2011, 19:42     Не правильно выводит ответ на экран #8
Цитата Сообщение от accept Посмотреть сообщение
нужно выставить флаг, а после цикла проверять его
Зачем??? Тот кусок кода, что Вы скопировали рабочий
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2011, 20:19     Не правильно выводит ответ на экран
Еще ссылки по теме:

C++ Машина Тьюринга. Выводит неправильный ответ
C++ Не могу понять ошибку .Не выводит ответ задачи
C++ Неправильно выводит ответ

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

Или воспользуйтесь поиском по форуму:
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
16.12.2011, 20:19     Не правильно выводит ответ на экран #9
Цитата Сообщение от go Посмотреть сообщение
Зачем??? Тот кусок кода, что Вы скопировали рабочий
в нём копипаст
Yandex
Объявления
16.12.2011, 20:19     Не правильно выводит ответ на экран
Ответ Создать тему
Опции темы

Текущее время: 16:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru