我试图在if语句中使用数组来确定x的值是否很少。
如果我这样做,一切都很常见。
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main(){
int y[5] = {1,2,3,4,5};
srand(time(0));
for(int z = 0; z <= 50; z++){
int x = 1 + (rand()%6);
cout << z;
cout << " " <<x;
if(y[5] == x){
cout << ": Common" << endl;
}else{
cout << ": RARE" << endl;
}
}
但如果我这样做,一切都很罕见。
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main(){
int y[5] = {1,2,3,4,5};
srand(time(0));
for(int z = 0; z <= 50; z++){
int x = 1 + (rand()%6);
cout << z;
cout << " " <<x;
if(y[5] == ++x){
cout << ": Common" << endl;
}else{
cout << ": RARE" << endl;
}
}
我真的很难于做什么可以有人请帮帮我?
答案 0 :(得分:1)
您的程序有未定义的行为。 y[5]
正在越过边界访问数组。
使用y[N-1]
访问大小为N
的数组的最后一个元素,因此您应该使用y[4]
答案 1 :(得分:1)
在这两种情况下,您还访问位置6(越界)的数组。你很幸运,第一个有效,但不是第二个。
将其更改为y[4]
(数组索引从0
开始。)