思路

  1. 得到数据个数
  2. 将字符串存到二维数组中
  3. 通过strcmp循环比较字符串大小
  4. 如果前1个大于后1个则交换位置
  5. 输出调整顺序后的数据

题解

#include <stdio.h>
#include <string.h>

int main()
{
	int n;
    //得到数据个数
	scanf("%d", &n);
	char str[n][101];//含'\0'
    //将字符串存到二维数组中
	for (int i = 0; i < n; i++)
		scanf("%s", str[i]);
	char tmp[101];
    //通过strcmp循环比较字符串大小
	for (int i = 0; i < n; i++)
	{
		for (int j = i+1; j <n; j++)
		{
            //如果前1个大于后1个则交换位置
			if (strcmp(str[i], str[j]) > 0)
			{
				strcpy(tmp, str[i]);
				strcpy(str[i], str[j]);
				strcpy(str[j], tmp);
			}
		}
	}
    //输出调整顺序后的数据
	for (int i = 0; i < n; i++)
		printf("%s\n", str[i]);

	return 0;
}