

求指教,这个测试点为什么一直不通过啊,我搜了别人的也是这么做的呀,第一个我试过我感觉也可以比较
关注引自免费微信小程序:皆我百晓生
看起来你在尝试解决一个C语言编程题,这道题要求实现字符串的冒泡排序。从你提供的代码片段来看,你似乎还没有完成整个函数。下面是一个完整的冒泡排序算法示例,你可以参考并将其整合进你的代码中。
#include <stdio.h>
#include <string.h>
// 定义一个函数用来交换两个字符串
void swap_strings(char *str1, char *str2) {
char temp[strlen(str1) + 1];
strcpy(temp, str1);
strcpy(str1, str2);
strcpy(str2, temp);
}
// 冒泡排序函数
void bubble_sort_string(char *strings[], int n, int k) {
for (int i = 0; i < k; i++) { // 进行k轮冒泡排序
for (int j = 0; j < n - 1; j++) { // 每轮冒泡排序
if (strcmp(strings[j], strings[j + 1]) > 0) { // 如果当前字符串大于下一个字符串,则交换它们
swap_strings(strings[j], strings[j + 1]);
}
}
}
}
int main() {
int n, k;
scanf("%d %d", &n, &k);
char a[n][10];
for (int i = 0; i < n; i++) {
scanf("%s", a[i]); // 输入字符串
}
bubble_sort_string(a, n, k); // 对字符串数组进行排序
for (int i = 0; i < n; i++) { // 输出排序后的字符串
printf("%s\n", a[i]);
}
return 0;
}
请确保你的程序遵循以下步骤:
n(字符串的数量)和k(排序的轮数)。a中。bubble_sort_string函数对字符串数组进行排序。如果你仍然遇到问题,可以检查以下几点:
n或k为0的情况。strcmp函数来比较字符串,它返回值小于0表示第一个字符串小于第二个,等于0表示相等,大于0表示第一个字符串大于第二个。如果还有其他问题,或者你需要更详细的解释,请随时告诉我。