为啥我这个代码只能输出一个字符串?

问题描述:

img


#include<iostream>
#include<string.h>
using namespace std;
int main(){
    int n;
    int x=0;
    while(cin>>n){
        string a[n];
        for(int i=0;i<n;i++){
            cin>>a[i];
        }
        if(x==0){
            for(int i=0;i<n-1;i++){
            if(a[i]=="bowl"||a[i]=="knife"||a[i]=="fork"||a[i]=="chopsticks")
                cout<<a[i]<<" ";
        }
            if(a[n-1]=="bowl"||a[n-1]=="knife"||a[n-1]=="fork"||a[n-1]=="chopsticks")
                cout<<a[n];
            x=1;
        }
        else{
            cout<<endl;
            for(int i=0;i<n-1;i++){
            if(a[i]=="bowl"||a[i]=="knife"||a[i]=="fork"||a[i]=="chopsticks")
                cout<<a[i]<<" ";
        }
            if(a[n-1]=="bowl"||a[n-1]=="knife"||a[n-1]=="fork"||a[n-1]=="chopsticks")
                cout<<a[n];
        }
    }
}

  1. 以后代码写的规范一点,更容易阅读,你这个缩进和括号的位置,容易让人产生误解。
  2. 比较字符串用strcmp

string变量可直接比较,输入一个串后,fflush试一下