为什么我的代码输出很多个答案?

断一个正整数是否为回文数。回文数是这样的数:一个正整数从左往右读和从右往左读都是一样的数

输入描述
输入一个整数,占一行。比如说: 12321

输出描述
输出占一行,是否为回文数,是输出: yes, 不是输出: no

样例输入
1234
121
454
样例输出
no
yes

#include<iostream>
using namespace std;
int main(){
    int num[200],a[200];
    int i=0,m,n;
    while(cin>>num[i]){
        i++;
        for(m=i;m>0;m--)
        for(n=0;n<i;n++)
        a[m]=num[n];
        for(m=0;m<i;m++)
        for(n=0;n<i;n++)
        if(a[m]==num[n])
        cout<<"yes"<<endl;
        else
        cout<<"no"<<endl;
        }
        return 0;
}

因为你把cout放在了for循环里面,它实际上应该放在while循环下面
注意你的代码缩进

不知你为何设计成一个循环的方式,实际上每次输入一个数,做一次判断即可,每次判断之间并无联系:

#include<iostream>
using namespace std;
int main(){
    int num, temp, reverse=0;
    while (cin >> num){
        temp = num;
        while (temp != 0)
        {
            reverse *= 10;
            reverse += (temp % 10);
            temp /= 10;
        }

        if (reverse == num)
            cout << "yes" << endl;
        else
            cout << "no" << endl;
    }
    return 0;
}