将数字输入数组

时间:2016-11-15 06:12:29

标签: c++ arrays

我无法正常使用我正在为家庭作业编写的程序。该作业要求我编写一个抽奖模拟,其中用户猜测1到40之间的7个数字。然后将这些数字与来自单独函数的随机生成的数字进行比较。此函数用于请求并将7个数字存储在数组中:

const int size = 7;

int getLottoPicks(int userNum[size]) { //collects and stores the user input

 for (int i = 0; i < size; i++) {
   cout << "Please enter number " << i+1 << ": ";
     cin >> userNum[i];

 if (userNum[i] < 1 || userNum[i] > 40) { //keeps the number between 1 and 40
   cout << "The number must between 1 and 40." << endl
        << "Please enter another number: ";
     cin >> userNum[i];
}
}

return userNum[size];
}

目前此功能输出的内容如 0096F71C 而不是输入的数字。

我需要做些什么修改才能在调用时输出7号数组? 此外,查找和防止用户输入重复值的最佳方法是什么?

提前致谢。

1 个答案:

答案 0 :(得分:0)

除了提示之外,您的功能不会输出任何内容。并且它返回一个元素,超过数组末尾。你有不确定的行为。

我建议您不需要返回任何内容,因为您的函数已经插入到给定的数组中。现在要修复它,您可以执行以下操作:

const int size = 7;

void getLottoPicks(int userNum[size]) { //collects and stores the user input

  for (int i = 0; i < size; i++) {
    cout << "Please enter number " << i+1 << ": ";
      cin >> userNum[i];

    if (userNum[i] < 1 || userNum[i] > 40) {
      cout << "The number must between 1 and 40." << endl
           << "Please enter another number: ";
      cin >> userNum[i];
    }

    for (int j = i; j > 0; --j) {
      if (userNum[i] == userNum[j]) {
        cout << "Already entered this number";
      }
    }
  } 
}