C++ 检查数组中的所有值

C++ 检查数组中的所有值,c++,c,C++,C,我有一个数组: int data[5] = {0,1,0,0,0}; 我想检查数据的所有元素是否都是1或0。我尝试了for loop,但没有解决问题 int control = 0; for(a=0; a<5; a++){ if(data[a] == 1) control = 1; } int控制=0; 对于(a=0;a您可以使用和 #包括行为,因此他们不必(一定)检查每个元素。尝试以下方法:- int control = 0; for(a=0; a&

我有一个数组:

int data[5] = {0,1,0,0,0};
我想检查
数据的所有元素是否都是
1
0
。我尝试了
for loop
,但没有解决问题

 int control = 0;
 for(a=0; a<5; a++){
    if(data[a] == 1) control = 1;          
 }
int控制=0;
对于(a=0;a您可以使用和

#包括行为,因此他们不必(一定)检查每个元素。

尝试以下方法:-

int control = 0;
for(a=0; a<5; a++)
 {
   if(data[a] == 1 || data[a]==0) 
     control++;
 }
if (control == 5)
 {
  cout<<"The array only contains 1 and 0";
 }
else
 {
  cout<<"The array contains elements other than 0's and 1's";
 }
int控制=0;

对于(a=0;a和C版本:OP,我想检查数据的所有元素是1还是0

int-data[5]={0,1,0,0};
int a,0=0,1=0;

对于(a=0;a您可以在for循环中执行此操作。您只需要某种跟踪结果的方法。您可以有两个表示true或false的变量。如果您首先假设数组为全零或全1,则可以将标志设置为true。然后在for循环中,如果发现矛盾,请将相应的标志设置为false.在这种情况下,我只使用int 0表示FALSE,int 1表示TRUE

int data[5] = {0,0,0,0,0};
int all_zero = 1;
int all_ones = 1;

for(i = 0; i < 5; i++){
    if(data[i] == 1){
        all_zero = 0;
    }
    else{
        all_ones = 0;
int-data[5]={0,0,0,0};
int all_zero=1;
int all_one=1;
对于(i=0;i<5;i++){
如果(数据[i]==1){
所有0=0;
}
否则{
所有值均为0;

。如果一个元素不符合条件,则断开loop@Lazy您到底想检查什么:是所有元素都是1还是所有元素都是0,还是所有元素都是1或0?@vladfrommosco
我想检查数据的所有元素都是1还是0。
std::begin(数据)和std::end(数据)-C++11I是否缺少某些内容或
begin
end
缺少正确的作用域?我的错误,并且确实有
std
前缀。@Cyber您需要std::这里没有依赖于参数的查找您可能希望在输出之前添加一个条件,检查控件的值是否与长度相同e数组。这样你就可以知道数组是全零还是全一。从那里你需要一种机制来识别控件代表什么。是全零还是全一?完成了,我想他会自己做。问题是找到数组是否包含除0和1以外的任何元素,我想我做得对。:-)4个0和1个1怎么样?谢谢@Dieter Lück我已经改进了答案。
int data[5] = {0,1,0,0,0};
int a, zeros=0, ones=0;
for (a=0; a<5; a++) {
    if (data[a] == 0) zeros++;
    if (data[a] == 1) ones++;
}
if (zeros == 5)
    printf ("All elements are 0\n");
else if (ones == 5)
    printf ("All elements are 1\n");
else if (ones+zeros == 5)
    printf ("All elements are 1 or 0\n");
else
    printf ("Some elements are not 1 or 0\n");
int data[5] = {0,0,0,0,0};
int all_zero = 1;
int all_ones = 1;

for(i = 0; i < 5; i++){
    if(data[i] == 1){
        all_zero = 0;
    }
    else{
        all_ones = 0;