简单的if和else语句不能正常工作

时间:2016-05-19 07:30:34

标签: c++ arrays

#include<iostream>
#include<conio.h>
using namespace std;

int main(){
    int num1[5];
    int num2[5];
    int equal=0;
    int i;
    cout<<"enter the integers values in num1"<<endl;
    for(i=0; i<5; i++){
        cin>>num1[i];
    }
        cout<<"enter the integers values in num2"<<endl;
    for(i=0; i<5; i++){
       cin>>num2[i];
    }
     cout<<"the values in first arrays are ";
    for(i=0; i<5; i++){
        cout<<"\t"<<num1[i];
    }
    cout<<"the values in second arrays are ";
    for(i=0; i<5; i++){
        cout<<"\t"<<num2[i];
    }
        for(i=0; i<5; i++){
            if(num1[i]=!num2[i]){
                 cout<<"both arrays are not equal"<<endl;
             }
            else{
                cout<<"both are equal"<<endl;
             }

         }  

    system("pause");
}                             
我已经制作了一个简单的程序,其中我已经声明了数组num1和num2我实际上正在比较两个数组但是如果语句不起作用,则无论何时语句都正常工作,只要我通过设置不同的值来比较两个数组它应该打印cout&lt;&lt;“两个数组不相等”&lt;声明,但它没有打印出来。

3 个答案:

答案 0 :(得分:9)

更改:

if(num1[i]=!num2[i]){
          ^^

if(num1[i]!=num2[i]){
          ^^

=!是否定num2[i]的分配,我怀疑你是否愿意这样做。

此外,您应该在此处收到可疑代码的警告:

prog.cc:27:32: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
             if(num1[i]=!num2[i]){

答案 1 :(得分:0)

不等于的语法是!=而不是=!。检查一下,我猜程序运行正常。

!=不等于运算符,其中as =!作为反转然后分配。 例如,如果表达式是a =!b,则它被解释为a =(!b),因此它分配而不是比较。

希望这有帮助。

答案 2 :(得分:0)

在我看来,最好完成&#34; FOR&#34;当有不同的数字,你知道数组将是不同的。因此,您节省了处理时间(另外,我认为,代码比以前更简洁,更简单。)

for(i=0; i<5; i++){
    if(num1[i]!=num2[i]){
        cout<<"both arrays are not equal"<<endl;
        return 0;
    }

cout<<"both are equal"<<endl;