求解决,看看我代码哪里出问题
#include <iostream>
using namespace std;
//输入一串数字,长度不固定,数字间空格隔开,求每个数字出现的次数,每行用n(m)形式输出,n为不同的数,m为n出现的次数
int main(int argc, char *argv[]) { //问题 :只能输出第一个数的出现次数
typedef struct str{
int a;
int b;
};
str str1[100];
int n=0;
int test[100];
int k=1;
int flag=1;
while(cin.get()!='\n'){ //问题 每次输入数据都会少掉第一个字符 输入时加空格则不会出现此问题,求解决方案
cin>>test[n];
n++;
}
for(int i=0;i<100;i++){
str1[i].a=0;
str1[i].b=0;
}
str1[0].a=test[0];
str1[0].b=0;
for(int i=0;i<n;i++){ // 2 2 3 4 5 2 3
for(int j=0;j<k;j++)
{
if(test[i]==str1[j].a){
str1[j].b++;
flag=1;
}
}
if(flag!=1){
str1[k].a=test[i];
str1[k].b=1;
k++;
flag=1;
}
}
for(int i=0;i<k;i++){
cout<<str1[i].a<<'(';
cout<<str1[i].b<<')'<<endl;
}
return 0;
}