2012-11-26 30 views
0

我試圖儘可能最好地標題。在這裏我有一個函數,它通過兩個並行數組索引,然後用一些格式輸出它們。C++:將字符串附加到循環中的第一個和最後一個數組索引的輸出

void outputTable(string salsa_jars[], int jars_sold[], int index[]) 
{ 
    int totalSold = 0; 
    cout << setw(8) << "\nSalsa type sells: " << endl 
     << "-------------------------------" << endl; 

    for(int i = 0; i <= (SALSA_TYPES-1); i++) 
    { 
    totalSold += jars_sold[index[i]]; 
    cout << setw(15) << left << salsa_jars[index[i]] 
     << setw(15) << right << jars_sold[index[i]] << endl; 
    } 

    cout << "-------------------------------" << endl 
     << "Total sales: " << setw(17) << totalSold << endl; 
} 

enter image description here

我試圖做到的,是一個字符串添加到數組的第一個和最後一個輸出。以下是我的嘗試。

void outputTable(string salsa_jars[], int jars_sold[], int index[]) 
{ 
    int totalSold = 0; 
    cout << setw(8) << "\nSalsa type sells: " << endl 
     << "-------------------------------" << endl; 

    for(int i=0;i<=(SALSA_TYPES-1);i++) 
    { 
     if(i == 0){ 
     cout << setw(7) << left << salsa_jars[index[i]] 
      << "(Highest)" << setw(14) << right 
      << jars_sold[index[i]] << endl; 
     } 
     else if (i == (SALSA_TYPES-1)){ 
     cout << setw(7) << left << salsa_jars[index[i]] 
     << "(Lowest)" << setw(15) << right 
     << jars_sold[index[i]] << endl; 
     } 
     else{ 
     totalSold += jars_sold[index[i]]; 
     cout << setw(15) << left << salsa_jars[index[i]] 
      << setw(15) << right << jars_sold[index[i]] << endl; 
     } 
    } 

    cout << "-------------------------------" << endl 
     << "Total sales: " << setw(17) << totalSold << endl; 
} 

enter image description here

但代碼似乎是多餘的,我想不出任何其他方式來做到這一點。如果任何人有任何指針,我將不勝感激。謝謝。

回答

0

剛準備適當的標題項,並使用共同的邏輯顯示它:

for(int i=0;i<=(SALSA_TYPES-1);i++) 
{ 
    string title = toString(salsa_jars[index[i]]); 
    if(i == 0){ 
     title += " (Highest)"; 
    } 
    else if (i == (SALSA_TYPES-1)){ 
    title += " (Lowest)"; 
    } 
    totalSold += jars_sold[index[i]]; 
    cout << setw(15) << left << title 
      << setw(15) << right << jars_sold[index[i]] << endl; 
    } 
} 
相關問題