- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- /*******************************
- 排序后分类相同ID的元素
- ******************************/
- struct USERCOMMSDTLS
- {
- char caUserId[20];
- int iCommsId;
- };
- int SortCommsID(struct USERCOMMSDTLS saUserCommsDtls[],int iNmbrOfUser)
- {
- int iReturnValue = 0;
- int iUserCount = 0, iInnerCount=0, iCount = 0;
- bool bCmpr = false ;
- char caUserId[800];
- int iCommsid;
- for( iUserCount = 0; iUserCount < iNmbrOfUser; iUserCount++)
- {
- for(iInnerCount=iNmbrOfUser-1; iInnerCount>iUserCount; iInnerCount--)
- {
- if(saUserCommsDtls[iInnerCount].iCommsId <= saUserCommsDtls[iInnerCount-1].iCommsId)
- {
- strcpy(caUserId,saUserCommsDtls[iInnerCount-1].caUserId);
- iCommsid = saUserCommsDtls[iInnerCount-1].iCommsId;
- strcpy(saUserCommsDtls[iInnerCount-1].caUserId,saUserCommsDtls[iInnerCount].caUserId);
- saUserCommsDtls[iInnerCount-1].iCommsId = saUserCommsDtls[iInnerCount].iCommsId;
- strcpy(saUserCommsDtls[iInnerCount].caUserId,caUserId);
- saUserCommsDtls [iInnerCount].iCommsId = iCommsid;
- bCmpr = true;
- }
- }
- if(bCmpr = false)
- break;
- }
- return 0;
- }
- int main()
- {
- char userlist[90];
- int iPrevCommsId = 0;
- int i;
- memset(userlist,0,sizeof(userlist));
- USERCOMMSDTLS saUserCommsDtls[5]={"IRS_0",2,"CAT_0",4,"FRA_0",3,"IRS_1",2,"ETF_0",7};
- printf("%s,%d/n",saUserCommsDtls[0].caUserId,saUserCommsDtls[0].iCommsId);
- printf("%s,%d/n",saUserCommsDtls[1].caUserId,saUserCommsDtls[1].iCommsId);
- printf("%s,%d/n",saUserCommsDtls[2].caUserId,saUserCommsDtls[2].iCommsId);
- printf("%s,%d/n",saUserCommsDtls[3].caUserId,saUserCommsDtls[3].iCommsId);
- printf("%s,%d/n",saUserCommsDtls[4].caUserId,saUserCommsDtls[4].iCommsId);
- printf("**************************/n");
- SortCommsID(saUserCommsDtls,5);
- printf("%s,%d/n",saUserCommsDtls[0].caUserId,saUserCommsDtls[0].iCommsId);
- printf("%s,%d/n",saUserCommsDtls[1].caUserId,saUserCommsDtls[1].iCommsId);
- printf("%s,%d/n",saUserCommsDtls[2].caUserId,saUserCommsDtls[2].iCommsId);
- printf("%s,%d/n",saUserCommsDtls[3].caUserId,saUserCommsDtls[3].iCommsId);
- printf("%s,%d/n",saUserCommsDtls[4].caUserId,saUserCommsDtls[4].iCommsId);
- printf("**************************/n");
- iPrevCommsId = 0;
- for(i=0;i<5;i++)
- {
- if(iPrevCommsId != saUserCommsDtls[i].iCommsId )
- { /** Send to Comms **/
- printf("userlist:%s/n",userlist);
- memset(userlist,0,sizeof(userlist));
- iPrevCommsId = saUserCommsDtls[i].iCommsId;
- strcpy(userlist, saUserCommsDtls[i].caUserId);
- }
- else if(saUserCommsDtls[i].iCommsId == iPrevCommsId)
- {
- strcat(userlist, "|");
- strcat(userlist, saUserCommsDtls[i].caUserId);
- iPrevCommsId = saUserCommsDtls[i].iCommsId;
- }
- }
- if(strlen(userlist) != 0)
- printf("userlist:%s/n",userlist);
- return 0;
- }
冒泡排序后分类相同ID的元素
最新推荐文章于 2022-08-02 19:23:08 发布