结构体计数
#include<iostream>
#include<string>
#include<map>
using namespace std;
struct Key_Value_Pair
{
int index;
int value;
};
int main()
{
Key_Value_Pair Part[1000];
int Key_num;
cin>>Key_num;
for(int i=0;i<Key_num;i++)
{
cin>>Part[i].index;
cin>>Part[i].value;
}
for(int i=0;i<Key_num;i++)
{
for(int j=i+1;j<Key_num;j++)
{
if(Part[i].index==Part[j].index)
{
Part[i].value=Part[i].value+Part[j].value;
for(int k=j;k<Key_num-1;k++)
{
Part[k]=Part[k+1];
}
j--;
Key_num--;
}
}
}
Key_Value_Pair temp;
for(int i=0;i<Key_num-1;i++)
{
for(int j=0;j<Key_num-1-i;j++)
{
if(Part[j].index>Part[j+1].index)
{
temp=Part[j];
Part[j]=Part[j+1];
Part[j+1]=temp;
}
}
}
for(int i=0;i<Key_num;i++)
cout<<Part[i].index<<" "<<Part[i].value<<endl;
return 0;
}
数组
#include<iostream>
#include<string>
using namespace std;
int main()
{
int a[1000]={0};
int num;
int index,value;
cin>>num;
for(int i=0;i<num;i++)
{
cin>>index>>value;
a[index]=a[index]+value;
}
for(int i=0;i<1000;i++)
{
if(a[i]!=0)
{
cout<<i<<" "<<a[i]<<endl;
}
}
return 0;
}