c语言排序相关问题
题目描述在平安夜当晚,某星座的小明准备了n个平安果送给他的n个好友。但是突然他觉得,只送普通的苹果实在是太low了……于是,小明打算模仿乔布斯的创意,在每个平安果上咬上一...
题目描述
在平安夜当晚,某星座的小明准备了n个平安果送给他的n个好友。但是突然他觉得,只送普通的苹果实在是太low了……
于是,小明打算模仿乔布斯的创意,在每个平安果上咬上一口,然后再把咬过的苹果精心包装后送给自己的朋友。
为了防止送错的情况发生,小明在每个苹果上面用一个大写字符做了标记。比如小兰姐姐的标记为'L'。
现在,小明把放的乱七八糟的苹果按照从重到轻的顺序进行排序,你能帮帮他么?
输入格式
第一行是一个整数n,表示苹果的个数【n<=100】
接下来n行,每行有一个整数和一个大写字母,分别表示苹果的重量和对应的标识,用空格隔开。
输出格式
共n行,为按照从重到轻排序之后的苹果重量和标识。
输入样例
5
12 M
14 L
9 H
11 A
13 C
输出样例
14 L
13 C
12 M
11 A
9 H
下面是我的代码,之前试的时候都是没有问题的,但交到测评网站上就不行了,请各位大神帮我看看是哪里的错误,谢谢你们~
#include<stdio.h>
int main(){ int a[101],i,j,n,t; char b[101],d; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d %c",&a[i],&b[i]); } for(i=0;i<n;i++) { for(j=0;j<n-i;j++) { if(a[j]>a[j-1]) { t=a[j]; a[j]=a[j-1]; a[j-1]=t; d=b[j]; b[j]=b[j-1]; b[j-1]=d; } } } for(j=0;j<n;j++) printf("%d %c\n",a[j],b[j]);
return 0;
} 展开
在平安夜当晚,某星座的小明准备了n个平安果送给他的n个好友。但是突然他觉得,只送普通的苹果实在是太low了……
于是,小明打算模仿乔布斯的创意,在每个平安果上咬上一口,然后再把咬过的苹果精心包装后送给自己的朋友。
为了防止送错的情况发生,小明在每个苹果上面用一个大写字符做了标记。比如小兰姐姐的标记为'L'。
现在,小明把放的乱七八糟的苹果按照从重到轻的顺序进行排序,你能帮帮他么?
输入格式
第一行是一个整数n,表示苹果的个数【n<=100】
接下来n行,每行有一个整数和一个大写字母,分别表示苹果的重量和对应的标识,用空格隔开。
输出格式
共n行,为按照从重到轻排序之后的苹果重量和标识。
输入样例
5
12 M
14 L
9 H
11 A
13 C
输出样例
14 L
13 C
12 M
11 A
9 H
下面是我的代码,之前试的时候都是没有问题的,但交到测评网站上就不行了,请各位大神帮我看看是哪里的错误,谢谢你们~
#include<stdio.h>
int main(){ int a[101],i,j,n,t; char b[101],d; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d %c",&a[i],&b[i]); } for(i=0;i<n;i++) { for(j=0;j<n-i;j++) { if(a[j]>a[j-1]) { t=a[j]; a[j]=a[j-1]; a[j-1]=t; d=b[j]; b[j]=b[j-1]; b[j-1]=d; } } } for(j=0;j<n;j++) printf("%d %c\n",a[j],b[j]);
return 0;
} 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询