2016-04-05 31 views
0

在下面的代碼我有2個陣列,含有1 3名,另外,含有21號打印2個陣列旁邊的海誓山盟

我想知道如何打印兩個陣列2維陣列彼此相鄰而不是一個在上面,一個在下面。隨着我的輸出的代碼如下所示的樣子:

name1 
name2 
name3 

37 37 63 38 27 56 55 
37 54 78 31 26 67 44 
86 11 23 6 90 87 33 

,我希望它顯示爲這樣

name1 37 37 63 38 27 56 55 
name2 37 54 78 31 26 67 44 
name3 86 11 23 6 90 87 33 

這裏是我使用顯示陣列功能

void printArrays(const int array1[][NUM_DAYS], const string array2[]) 
{ 
cout << "Name \t\t\t Day 1\t Day 2\t Day 3\t Day 4 \t Day 5\t Day 6\t Day 7" << endl; 
for (int i = 0; i < NUM_MONKEYS; i++) 
{ 
    cout << array2[i] << endl; 
} 
cout << endl; 

for (int row = 0; row < NUM_MONKEYS; row++) 
{ 

    for (int col = 0; col < NUM_DAYS; col++) 
    { 
     cout << array1[row][col] << " "; 

    } 
    cout << endl; 
} 

回答

1

您正在開始一個新的循環來遍歷array2.You只需要遍歷與第一個array相同的行索引。檢查代碼:

void printArrays(const int array1[][NUM_DAYS], const string array2[]) 
{ 
    cout << "Name \t\t\t Day 1\t Day 2\t Day 3\t Day 4 \t Day 5\t Day 6\t Day 7" << endl; 
    for (int i = 0; i < NUM_MONKEYS; i++) 
    { 
     cout << array2[i] << " ";  

    for (int col = 0; col < NUM_DAYS; col++) 
    { 
    cout << array1[i][col] << " "; 
    } 
    cout << endl; 
    } 

} 
0

爲什麼你不聲明三個std::vector的並用它的名字打印它們?

void print(const vector<int>& vec, const string& name) 
{ 
    cout << name << "\t"; 
    for (const auto& i : vec) 
     cout << i << " "; 

    cout << '\n'; 
} 

int main() 
{ 
    vector<int> name1 { 37, 37, 63, 38, 27, 56, 55 }; 
    vector<int> name2 { 37, 54, 78, 31, 26, 67, 44 }; 
    vector<int> name3 { 86, 11, 23, 6, 90, 87, 33 }; 

    print(name1, "name1"); 
    print(name2, "name2"); 
    print(name3, "name3"); 
} 

輸出:

name1 37 37 63 38 27 56 55 
name2 37 54 78 31 26 67 44 
name3 86 11 23 6 90 87 33 
0

你的溶液可以使用簡化的C++ 11-基於範圍for循環。

#include <iostream> 
#include <vector> 

int main() 
{ 
    std::vector<char*> m_Str{"name1", "name2", "name3"}; 
    std::vector<std::vector<int>> m_Array{ { 37, 37, 63, 38, 27, 56, 55 }, 
              { 37, 54, 78, 31, 26, 67, 44 }, 
              { 86, 11, 23, 6, 90, 87, 33 } }; 

    for(const auto& str : m_Str) 
    { 
     static auto i = 0; 
     std::cout << str << '\t'; 
     for(const auto& ele : m_Array[i]) 
     { 
      std::cout << ele << ' '; 
     } 
     std::cout << std::endl; 
     i++; 
    } 
}