-2

用户应该输入一个名字,然后是等级。当用户点击 -1 时,不能再为该个人存储成绩。当用户输入 X 时,她/他输入总分,然后输入 -1 表示不能再存储分数。我不明白为什么我的 for 循环以一种奇怪的方式输出。names 数组存储应该进入 numbers 数组的 int 值。

例如,输入应如下所示:

Jane 3 4 -1
Lane 4 5 -1
X   10 10 -1 

输出应如下所示:

Jane 3 4 
Jane had a 7/20
Lane 4 5
Lane had a 9/20

这是我到目前为止的工作:

#include <iostream>
#include <cstring>
#include <string>

using namespace std;

int main()
{
 string name = " ";
 string names[20];
 int numbers[20];
 int i = 0, j=0, number;

 do
 {
   cin >> name;
   names[i]=name;
   i++;

   j=0;
   if(number!=-1)
   {
       cin>> number;
       numbers[j]=number;
       j++;
   }
 }while(name!="X");

 for(int x = 0; x <= i; x++)
 {
  for(int y = 0; y <= j; y++)
  {
      cout << names[x];
  }
 }

}
4

1 回答 1

0

您的代码的一个问题是,

 int i = 0, j=0, number;

number您在代码中使用未初始化的

if(number!=-1)

这包含可能巧合为 -1的垃圾值

于 2013-07-22T06:55:52.770 回答