题解 | #合并表记录#

合并表记录

http://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201

#include<stdlib.h>
int cmp(void* elem1,void* elem2)
{
    return *(int*)elem1 - *(int*)elem2;
}
int main()
{
    int n = 0;
    scanf("%d",&n);
    int arr[n][2];
    int i = 0,j = 0;
    for(i=0;i<n;i++)
    {
        for(j=0;j<2;j++)
        {
            scanf("%d",&arr[i][j]);
        }
    }
    qsort(arr,n,8,cmp);//排序
    int src = 0;
     for(i=0;i<n;i++)
     {
         j = i+1;//找下一列
         while(arr[i][0]==arr[j][0]&&j<n)
         {
             arr[i][1]+=arr[j][1];
             memmove(arr+j,arr+j+1,(n-j-1)*8);//把加进去的数列覆盖掉
             n--;
         }
     }
    for(i=0;i<n;i++)
    {
        for(j=0;j<2;j++)
        {
            printf("%d ",arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}
全部评论

相关推荐

点赞 评论 收藏
分享
02-13 14:30
四川大学 Java
Java抽象带篮子:简历怎么写可以看看我发的帖子,你先照着优化下简历吧
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务