c ++数组和if语句不起作用

Boj*_*nić 0 c++

简单的代码将用户输入存储到数组中并显示它.如果数组的一个元素是4,那么它应该在屏幕上打印"四".但问题是,即使数组中没有数字4,它总是打印四个.

#include <iostream>
using namespace std;


int main (){

    int x[10];
    int n;
    cin>>n;

    for(int i=1;i<=n;i++){
    cin>>x[i] ;       


    }
    cout<<endl;
       for(int i=1;i<=n;i++){
    if (x[i]=4) 
    cout<<"four"<<endl;
    else continue;     


    }


    system("pause");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*oun 5

if (x[i]=4)分配4到x[i].

你想==用来比较.

请注意,赋值的表达式返回指定的值,在这种情况下,if (x[i]=4)始终将其计算为true.

终身提示:启用编译器警告.


你需要注意的另一件事是你的for循环:

for(int i=1;i<=n;i++)

请记住,数组在C++(以及大多数语言)中都是从零开始的.
如果你有大小的数组N,然后将指标来自0N-1(N共).

所以你需要这样做:

for(int i=0;i<n;i++)