LXYlxy666

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

题目描述:

定义一个二维字符数组str[10][20],行号表示单词序号,列号表示单词最大长度,

输入一个正整数N(N≤10),表示单词数,
使用函数wd_sort()完成单词的排序,按字母顺序从小到大排列单词

输入描述:
输入一个正整数N和一个二维字符数组str,字母为小写,行号表示单词序号,列号表示单词最大长度。

输出描述:
格式输出:排序后的单词之间用换行分隔。

输入样例:
3
word
fish
egg

输出样例:
egg
fish
word

#include<stdio.h>
#include<string.h>
void wd_sort(char p[][20],int n){  //传入未知数量个长度为20的数组
	char s[20];
	int i,j;
	for(i=0;i<n-1;i++){
		for(j=i;j<n;j++){
			if(strcmp(p[i],p[j])>0){ //p[i]就是第一行的数组名
				strcpy(s,p[i]);//等价于交换数字,这里是交换字符串
				strcpy(p[i],p[j]);
				strcpy(p[j],s);
			}
		}
		puts(p[i]);
	}
	puts(p[i]);
}
int main(){
	char str[10][20];
	int N,i;
	scanf("%d\n",&N);
	for(i=0;i<N;i++){
		gets(str[i]);
	}
	wd_sort(&str[0],N);//这里将二维数组str的每一行视为一个元素,每一行在一块就构成一个数组(装着数组的数组) str[0]str[1]str[2]...
//那么&str[0]就指向str[0]。str[0]又是一个长度为20的数组,str[0]就是第0行str[0][20]该数组的数组名 return 0; }

  传入多维数组,将每一行当做一个数组在函数中处理的例子

posted on 2023-03-03 20:01  printf("赖狒狒");  阅读(23)  评论(0编辑  收藏  举报