2016-10-13 3 views
0

Я создал многомерный массив в C++, но при его поиске ничего не возвращает. Просто интересно, если я что-то испортил в коде? Полное раскрытие: Первоначально это было присвоение класса, но я перевернул его 2 недели назад. Я прошу уточнить будущие программы.Поиск многомерного массива

Я поставил основной корпус (минус некоторые из списка, так как это 1000 записей) ниже

#include <cstdlib> 
#include <string> 
#include <iostream> 

using namespace std; 

int main(int argc, char** argv) { 

    std::string name; 
    std::string age; 


    //declare 1000*2 Array  
    std::string array[1000][2] = 
    { 
     { "Karen Rose","25"  }, 
{ "Cora Faison","11"  }, 
{ "Donna Jones","49"  }, 
{ "Robert Lowe","31"  }, 
{ "Patricia Johnston","17" }, 
{ "Maryanne Hicks","40"  }, 
{ "James Mcmurray","53"  }, 

}; 

    cout << "Enter a name to search for " << endl; 
    cin >> name; 

    for(int i = 0; i > 1000; i++) 
    { 
     if(name == array[i][0]) 
     { 
      age = array[i][1]; 
      cout << name << "'s age is" << age << endl; 
     } 
     else 
     { 
      cout << "we found nothing" << endl; 
    } 

} 

return 0; 
} 
+0

Что именно случилось? У вас были сообщения об ошибках? –

+0

Исправьте углубление. ТИА. – Borgleader

+0

Правильный инструмент для решения таких проблем - ваш отладчик. Перед тем, как просить о переполнении стека, вы должны пропустить свой код по очереди *. Для получения дополнительной информации, пожалуйста, прочтите [Как отлаживать небольшие программы (Эрик Липперт)] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/). Как минимум, вы должны \ [изменить] ваш вопрос, чтобы включить пример [Минимальный, полный и проверенный] (http://stackoverflow.com/help/mcve), который воспроизводит вашу проблему, а также замечания, сделанные вами в отладчик. –

ответ

1

for(int i = 0; i > 1000; i++) должен быть for(int i = 0; i < 1000; i++). То, как вы написали его, должно быть выполнено не так, как цикл for.

0

I> 1000 делает вашу петлю пустой. < - это тот, который вы хотите.

Но так или иначе почему 1000, а не 7?

+0

Как я уже сказал, это был проект класса (давно уже включенный). Я просто играю с ним, потому что я хотел знать, почему он не работает. – Narno22

2

Помимо того, что ваш тест цикла назад, используя cin >> name, вы получите только имя. Вы проверяете первое и последнее. Таким образом, ваши тесты никогда не будут успешными.

Использование std::getline.

Выполнение modicum отладочной работы могло бы привести к возникновению обеих ошибок.

Смежные вопросы