编写程序。首先输入一个列表,从键盘输入一个数k,k表示列表的某个下标值,列表下标k值前的元素按字符串大小进行降序排序,列表下标k值后的元素进行逆序存储操作,最后输出列表。“
时间: 2023-03-30 13:02:45 浏览: 130
一个控制台应用程序从键盘输入你要排序的数的个数n ,然后输入要排序的n个数,按由小到大的顺序输出
5星 · 资源好评率100%
好的,我可以回答这个问题。以下是程序的代码:
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
void swap(char *a, char *b) {
char temp[MAX_LEN];
strcpy(temp, a);
strcpy(a, b);
strcpy(b, temp);
}
void reverse(char *str) {
int len = strlen(str);
for (int i = ; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
int main() {
char list[MAX_LEN][MAX_LEN];
int k;
scanf("%d", &k);
int n = ;
while (scanf("%s", list[n]) != EOF) {
n++;
}
for (int i = ; i < k; i++) {
for (int j = i + 1; j < n; j++) {
if (strcmp(list[i], list[j]) < ) {
swap(list[i], list[j]);
}
}
}
for (int i = k; i < n; i++) {
reverse(list[i]);
}
for (int i = ; i < n; i++) {
printf("%s ", list[i]);
}
printf("\n");
return ;
}
阅读全文