. 输入10个字符串,然后排序输出。排序的原则由键盘输入的数来决定,为0,将输入的字符串按整数值大小由小到大排序,否则按字典顺序排序。要求:用C语言输入、输出、排序分别用函数实现,主函数只是调用这些函数。
时间: 2023-05-31 13:02:44 浏览: 311
获取输入字符串的拼音PinYing.7z
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_LENGTH 100
void inputStrings(char strings[][MAX_LENGTH], int n);
void outputStrings(char strings[][MAX_LENGTH], int n);
void sortStrings(char strings[][MAX_LENGTH], int n, int type);
int main() {
char strings[10][MAX_LENGTH];
int type;
printf("请输入排序类型:0-按整数值大小排序,其他-按字典顺序排序:");
scanf("%d", &type);
inputStrings(strings, 10);
sortStrings(strings, 10, type);
outputStrings(strings, 10);
return 0;
}
void inputStrings(char strings[][MAX_LENGTH], int n) {
int i;
for (i = 0; i < n; i++) {
printf("请输入第%d个字符串:", i + 1);
scanf("%s", strings[i]);
}
}
void outputStrings(char strings[][MAX_LENGTH], int n) {
int i;
printf("排序后的字符串为:\n");
for (i = 0; i < n; i++) {
printf("%s\n", strings[i]);
}
}
void sortStrings(char strings[][MAX_LENGTH], int n, int type) {
int i, j;
char temp[MAX_LENGTH];
if (type == 0) { // 按整数值大小排序
int nums[n];
for (i = 0; i < n; i++) {
nums[i] = atoi(strings[i]);
}
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (nums[j] > nums[j + 1]) {
int temp_num = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp_num;
strcpy(temp, strings[j]);
strcpy(strings[j], strings[j + 1]);
strcpy(strings[j + 1], temp);
}
}
}
} else { // 按字典顺序排序
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (strcmp(strings[j], strings[j + 1]) > 0) {
strcpy(temp, strings[j]);
strcpy(strings[j], strings[j + 1]);
strcpy(strings[j + 1], temp);
}
}
}
}
}
```
阅读全文