我没有从这道题目中读出如何结束输入的过程,所以我就当做输放为0时结束。 // Contest Scoreboard.cpp : Defines the entry point for the console application. // #include "stdafx.h" using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int EnterPiece[100][3]={0}; // Input data; char state[100]={'/0'}; //record the state; int TotalData[100][3]={0}; //sum up the data; //char TotalState[100]={'/0'}; int via=0; //char vic='/0'; int line=0; int n=0; for(int i=0;i<100;++i) { for(int j=0;j<3;++j) { cin>>via; if(via==0)break; else EnterPiece[i][j]=via; } if(via==0)break; else { cin>>state[i]; ++line; } } /*for(int x=0;x<line;++x) { for(int y=0;y<3;++y) { cout<<EnterPiece[x][y]; //if(y==2)cout<<"/n"; } cout<<state[x]<<"/n"; }*/ //cout<<line<<"/n"; for(int i=0;i<line;++i) { if(i==0) { TotalData[0][0]=EnterPiece[0][0]; TotalData[0][1]=EnterPiece[0][1]; TotalData[0][2]=EnterPiece[0][2]; } else { n=0; while(n<line) { if(EnterPiece[i][0]==TotalData[n][0]) { if(state[i]=='C'||state[i]=='I') { TotalData[n][2]+=EnterPiece[i][2]; if(state[i]=='C')TotalData[n][1]+=EnterPiece[i][1]; } break; } else { if(TotalData[n][0]==0) { TotalData[n][0]=EnterPiece[i][0]; TotalData[n][1]=EnterPiece[i][1]; TotalData[n][2]=EnterPiece[i][2]; break; } else ++n; } } } } for(int x=0;x<line;++x) { if(TotalData[x][0]!=0)cout<<TotalData[x][0]<<" "<<TotalData[x][1]<<" "<<TotalData[x][2]<<"/n"; } system("pause"); return 0; }