0

我试图尽可能地说出标题。在这里,我有一个函数,它通过两个并行数组进行索引,然后以某种格式输出它们。

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;
}

在此处输入图像描述

我想要实现的是在数组的第一个和最后一个输出中添加一个字符串。下面是我的尝试。

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;
}

在此处输入图像描述

但是代码似乎是多余的,我想不出任何其他方法来做到这一点。如果有人有任何指示,我将不胜感激。谢谢。

4

1 回答 1

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;
   }
 }  
于 2012-11-26T08:31:43.830 回答