基本上,用户将输入一个从1到10的唯一id号和一个用户名,他可以按任何顺序输入。我一直试图做的是将唯一的id号和用户名链接在一起,以升序打印出来,但它能够对id号进行排序,但不会对标记到id号的用户名进行排序
输入:
你的身份证是什么3.
你的名字叫什么?萝拉
你的身份证是什么2.
你的名字叫什么?普雷斯顿
你的身份证是什么1.
你的名字叫什么?基利安
预期输出:
身份证号码:1
你的名字:基里安
身份证号码:2
你的名字:普雷斯顿
身份证号码:3
你的名字:萝拉
给定输出:
身份证号码:1
你的名字:萝拉
身份证号码:2
你的名字:普雷斯顿
身份证号码:3
你的名字:基里安
作废myGameDetails(){
内部温度,i,j,k,温度;
如果(计数器>;0){
对于(j=0;j<;计数器;++j){
用于(k=j+1;k<;计数器;++k){
if(userDetails[j].ID>;userDetails[k].ID){
temp=userDetails[j].ID;
userDetails[j].ID=userDetails[k].ID;
userDetails[k].ID=temp;
}
}
}
用于(i=0;i<;计数器;++i){
printf(“ID按升序排列\n”)
printf(“ID:%d\n”,userDetails[i].ID);
printf(“您的姓名:%s”,userDetails[i].name);
}
}
}
代码具有比较的ID
if(userDetails[j].ID>;userDetails[k].ID)
如果在排序条件中,名称是ID的次要名称,则当ID相同时,也可以通过在上使用成员:strcmp()来测试。name
if(userDetails[j].ID>;userDetails[k].ID||
(userDetails[j].ID==userDetails[k].ID&;
strcmp(userDetails[j].Name,userDetails[k].Name)>;0){
如果.ID是次要的,则调用strcmp()并保存其结果
int-scmp=strcmp(userDetails[j].Name,userDetails[k].Name);
如果(scmp>;0||
(scmp==0&;userDetails[j].ID>;userDetails[k].ID)){