首页 > 解决方案 > 有没有办法在 c++ 中清除空数组,请查看下面的代码以获取解释

问题描述

generated = (rand() % 11);

cout << "GUESS THE NUMBER 10 TIMES" << endl;
for (int i = 0; i < 10; i++) {
  cin >> guesses[i];

  if (generated == guesses[i]) {
    cout << "CONGRATS ! YOU HAVE FOUND THE CORRECT NUMBER ! " << generated << endl;
    restart();
    break;
  }
}
cout << "HERE ARE YOUR GUESSES:" << endl;
for (int k = 0; k < 10; k++) {
  cout << guesses[k] << endl;
}

如果数组没有填满,输出会给我猜测的值,然后在空槽中是随机数。有没有办法清除或删除未触及的插槽?

标签: c++arraysfor-loopif-statement

解决方案


是的。记下您在第二个循环中输入c和循环的输入数量,c而不是 10:

int c = 0;
cout << "GUESS THE NUMBER 10 TIMES" << endl;
for (int i = 0; i < 10; i++) {
    cin >> guesses[i];
    c++;

    if (generated == guesses[i]) {
        cout << "CONGRATS ! YOU HAVE FOUND THE CORRECT NUMBER ! " << generated << endl;
        restart();
        break;
    }
}
cout << "HERE ARE YOUR GUESSES:" << endl;
for (int k = 0; k < c; k++)
    cout << guesses[k] << endl;

推荐阅读