题目:数组
分析:模拟数数 理清思路 不要重复计数
注意:The input file will contain a sequence of integers (positive, negative, and/or zero)
代码一:把第一个输入当作特殊情况
#include "iostream"
using namespace std;
int main()
{
int put_digit[10000]={0},k=0,flag=1; //无相同,k记录当前有几个数字
int counter_of_digit[10000]= {0};
int digit,i;
while(cin>>digit)
{
flag=1;
if(k==0)
{
put_digit[0]=digit;
counter_of_digit[0]=1;
k++;
}
else
{
for( i=0; i<k; i++)
{
if(put_digit[i]==digit)
{
counter_of_digit[i]++;
flag=0;break;
}
}
if(flag)
{
put_digit[k]=digit;
counter_of_digit[i]=1;
k++;
}
}
}
for (int i=0; i<k; i++)
{
cout<<put_digit[i]<<' '<<counter_of_digit[i]<<endl;
}
return 0;
}
代码二:不把第一个数当作特殊情况
#include "iostream"
using namespace std;
int main()
{
int put_digit[10000]={0},k=0,flag=1; //无相同,k记录当前有几个数字
int counter_of_digit[10000]= {0};
int digit,i;
while(cin>>digit)
{
flag=1;
if(k==0)
{
put_digit[0]=digit;
counter_of_digit[0]=1;
k++;
}
else
{
for( i=0; i<k; i++)
{
if(put_digit[i]==digit)
{
counter_of_digit[i]++;
flag=0;break;
}
}
if(flag)
{
put_digit[k]=digit;
counter_of_digit[i]=1;
k++;
}
}
}
//输出
for (int i=0; i<k; i++)
{
cout<<put_digit[i]<<' '<<counter_of_digit[i]<<endl;
}
return 0;
}