文章

47

粉丝

109

获赞

8

访问

29.7k

头像
国名排序 题解:
P1217 同济大学机试题
发布于2024年3月5日 20:24
阅读数 441

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//用C语言的话,就主要考察二元字符数组那块的知识,因为只有这样才能在数组中存储多个字符串,因为字符串在C语言中就是以字符数组的形式存在的
int name1(const void* elem1, const void* elem2) {
	return strcmp((char*)elem1 , (char*)elem2);
}
int main() {
	int n = 0;
	scanf("%d", &n);
	char s[105][105];
	for (int i = 0; i < n; i++) {
		scanf("%s", &s[i]);
	}
	qsort(s,n,sizeof(s[0]),name1);
	for (int i = 0; i < n; i++) {
		printf("%s\n", s[i]);
	}
	return 0;
}

详解版

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int sort(const void* elem1, const void* elem2) {

	//return *(char*)elem1 - *(char*)elem2;仅仅比较首字母
	return strcmp((char*)elem1, (char*)elem2);
}
int main() {
	//gets(s) 可以输入一个很长的字符串,不会因为空格而被打断,空格也算是字符 并且 为读入一行,并将换行符转换为字符串结束符
	//char s[105] scanf("%s",&s[i]) 读取一个字符串,会跳过前导的空格或tab,遇到空格、tab或空格即结束读取
	//char s[105][105]; scanf("%s",&s[i])二维字符数组一般用于存储和处理多个字符串,不会因为换行而结束
	int n = 0;
	scanf("%d", &...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发