Russian Qt Forum
Ноябрь 23, 2024, 15:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сравнение чисел из массива и переменной  (Прочитано 3504 раз)
Dealaxer
Гость
« : Июнь 21, 2014, 15:19 »

Народ помогите, подскажите!

В программе существует готовая переменная с.id, которая выдает числа от 0 до 1200, при каждом выполнении foreach.
Надо подправить программу под другие цели.

Необходимо сравнить все числа из списка массива, с переменной c.id, и если например число 200 из переменной равно числу 200 из массива, то вывести в результат 3 число из другого массива например число 22. Главное чтобы числа из 2 массива как бы были привязаны к 1 массиву, то есть 200 = 22, 300 = 33 и т.д..

Пробовал так:
Код:
QString gnum;
int Arr[]={200, 300, 400};
int Arr2[]={22, 33, 44};
for(int i=0;i<3;++i)
{
      if(Arr[i] == QString().number(c.id))
      gnum = Arr2[i];
      else
      gnum = QString().number(c.id);
}

Но код не пашет.
Помогите пожалуйста, с данной проблемой.

За ранее, благодарю.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Июнь 21, 2014, 16:12 »

проблема в незнании языка и библиотеки

Код
C++ (Qt)
for (int i=0;i<3;++i)
{
   if (Arr[i] == c.id)
   {
       gnum = QString:number(Arr2[i]);
       break;
   }
}
if (gnum.isEmpty())
   gnum = QString:number(c.id);
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
vbv
Чайник
*
Offline Offline

Сообщений: 59


Просмотр профиля
« Ответ #2 : Июнь 21, 2014, 17:00 »

Я бы написал так.
Вот только интересно, как получится быстрее.....

gnum = QString:number(c.id);
for (int i=0;i<3;++i)
{
    if (Arr == c.id)
    {
        gnum = QString:number(Arr2);
        break;
    }
}
Записан
Dealaxer
Гость
« Ответ #3 : Июнь 21, 2014, 17:56 »

проблема в незнании языка и библиотеки

Код
C++ (Qt)
for (int i=0;i<3;++i)
{
   if (Arr[i] == c.id)
   {
       gnum = QString:number(Arr2[i]);
       break;
   }
}
if (gnum.isEmpty())
   gnum = QString:number(c.id);
Благодарю, но так не заработало. Заработало только если внести небольшое изменение:
Код
C++ (Qt)
QString().number(c.id);
 
за место двоеточий, ставить скобки.
Я бы написал так.
Вот только интересно, как получится быстрее.....

gnum = QString:number(c.id);
for (int i=0;i<3;++i)
{
    if (Arr == c.id)
    {
        gnum = QString:number(Arr2);
        break;
    }
}

Также благодарю.
« Последнее редактирование: Июнь 21, 2014, 17:57 от Dealaxer » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #4 : Июнь 21, 2014, 18:46 »

ой, я случайно одно двоеточие поставил вместо двух. прямое подтверждение моих слов про незнание.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.21 секунд. Запросов: 23.