gpt4 book ai didi

c - 开发一个用户定义的函数以非降序对数组进行排序

转载 作者:行者123 更新时间:2023-11-30 16:37:21 26 4
gpt4 key购买 nike

我刚刚了解了指针并尝试了课本上的程序,

"声明一个char类型的数组,大小为8,要求用户输入一个字符串,然后分配给数组。开发用户自定义的函数以非降序对数组进行排序。打印数组在主函数中排序之前和之后。功能原型(prototype)给出为void arr_sort( char * cPtr)"

我不太清楚我犯了什么错误。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void print(char *a[]);
void arr_sort( char *a[]);
int main()
{
int i;
char *array[8];
printf("Please input a string with size 7:");
for(i=0;i<7;i++)
{
scanf("%s",array);
}
printf("the array before sorting is");
print(array);
arr_sort(array);
print(array);
return 0;
}

void arr_sort( char *a[])
{
int i,j;
char *temp;
for(i=0;i<7;i++)
{
for(j=0;j<7;j++)
{
if(strcmp(a[j],a[j+1])>0)
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
void print(char *a[])
{
int i;
for(i=0;i<7;i++)
{
printf("%s ",a[i]);
}
}

最佳答案

用 C 语言快速“谷歌”进行冒泡排序,结果是:

// where 'n' is the number of entries in the array
// where 'array' is declared as 'int array[n];
for ( int c = 0 ; c < ( n - 1 ); c++ )
{
for ( int d = 0 ; d < n - c - 1; d++ )
{
if ( array[d] > array[d+1] ) /* For decreasing order use < */
{
int temp = array[d];
array[d] = array[d+1];
array[d+1] = temp;
}
}
}

注意索引变量上限的限制。

在您的程序中,您将使用 char 而不是 int 来表示 temparray[]

注意,string.h 头文件中不需要任何内容​​。

注意局部变量cdtemp范围的限制

对您发布的问题的评论涵盖了发布的代码中的问题,因此我不会在这里重复所有内容。

关于c - 开发一个用户定义的函数以非降序对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47982711/

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