解题思路:
注意事项:
byd 这题坑死我,多亏元宝AI,告诉我这题是按降序排列,题例给的真黑,正序倒序都是一样的,要是偶数个,就报错了!!!
参考代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct _Node
{
char z[100];
float data;
struct _Node* next;
}Node,*node;
node createnode()
{
node newnode = (node)malloc(sizeof(Node));
newnode->next = NULL;
return newnode;
}
void tailPush(node h,int m)
{
int flag = 1;
int k = 0;
node r = h;
while(flag)
{
if (k < m)
{
node s = (node)malloc(sizeof(Node));
scanf("%s %f",s->z,&s->data);
r->next = s;
r = s;
k++;
} 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)
{
char S[100];
strcpy(S,cur->z);
float 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,int n)
{
node p = h->next;
int i = 0;
while(p != NULL && i < n - 1)
{
i++;
//printf("%s %f\n",p->z,p->data);
p = p->next;
}
printf("%s %g\n",p->z,p->data);
}
int main()
{
node h = createnode();
int m,n;
scanf("%d%d",&m,&n);
tailPush(h,m);
Sort(h);
Print(h,n);
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复