解题思路:链表实现
注意事项:
参考代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct _Node
{
char z[30];
int data;
struct _Node* next;
}Node,*node;
node createnode()
{
node newnode = (node)malloc(sizeof(Node));
newnode->next = NULL;
return newnode;
}
void tailpush(node h,int n)
{
int i = 0;
node r = h;
node s;
int flag = 1;
char c[30];
int data;
while(flag)
{
scanf("%s %d",c,&data);
if (i < n && data <= 100)
{
s = (node)malloc(sizeof(Node));
strcpy(s->z,c);
s->data = data;
r->next = s;
r = s;
i++;
} else {
r->next = NULL;
flag = 0;
}
}
}
void Sort(node h)
{
int flag = 1;
while(flag)
{
flag = 0;
node cur = h->next;
while(cur->next != NULL)
{
if(cur->data < cur->next->data || (cur->data == cur->next->data && strcmp(cur->z,cur->next->z) > 0))
{
char S[30];
strcpy(S,cur->z);
int tem = cur->data;
strcpy(cur->z,cur->next->z);
cur->data = cur->next->data;
strcpy(cur->next->z,S);
cur->next->data = tem;
flag = 1;
}
cur = cur->next;
}
}
}
void Print(node h)
{
node p = h->next;
while(p != NULL)
{
printf("%s %d\n",p->z,p->data);
p = p->next;
}
}
int main()
{
node h = createnode();
int n;
scanf("%d",&n);
tailpush(h,n);
Sort(h);
Print(h);
return 0;
}
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复