gpt4 book ai didi

c - C中的冒泡排序。输出与输入相同

转载 作者:太空宇宙 更新时间:2023-11-04 07:20:10 25 4
gpt4 key购买 nike

作为一项学校作业,我们正在用 c 语言编写一个冒泡排序程序。我写的代码有效。唯一的问题是输出返回输入而不返回交换的输入。我有点卡住了。无论我做什么,我要么出错,要么什么都没有改变。有人知道出了什么问题吗?任何帮助将不胜感激!!

#include <stdio.h>
#include <string.h>
#define MAXLENGTH 100


void getString(char *str);
void printResult(char *str);
int greaterThan(char ch1, char ch2);
void swap(char *str, int index1, int index2);


int main(void) {
int len; // length of the entered string
char str[MAXLENGTH]; // input should be no longer than MAXLENGTH


getString(str);
len = strlen(str); // get length of the string, from sting.h
int j;
for (j = 0; j < len-j; j++) {
int i;
for (i = 0; i < len-j; i++){
char ch1 = str[i];
char ch2 = str[i+1];
if (greaterThan(ch1, ch2)) {
swap(str, i, i+1); // swap char 1
swap(str, i, i+1); // swap char 2
}
}
}
printResult(str);

return(0);
}



void getString(char *str) {
printf("Enter the string you would like to sort: ");
scanf("%s",str);
}


void printResult(char *str){
printf("Here is the sorted string: ");
printf("%s",str);
}


int greaterThan(char ch1, char ch2){
return (ch1 > ch2);
}


void swap(char *str, int index1, int index2){
char h = str[index1];
str[index1] = str[index2];
str[index2] = h;
}

最佳答案

试试这个:

getString(str);
len = strlen(str); // get length of the string, from sting.h
int j;
for (j = 0; j < len-j; j++) {
int i;
for (i = 0; i < len-j; i++){
char ch1 = str[i];
char ch2 = str[i+1];
if (greaterThan(ch1, ch2)) {
swap(str, i, i+1); // swap char 1
}
}
}
printResult(str);

return(0);
}

关于c - C中的冒泡排序。输出与输入相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22037971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com