C语言改错题,题目:实现n个字符串的升序排列

C语言改错题,题目:实现n个字符串的升序排列

#include <stdio.h>

#include <string.h>

#define ROW 5

#define COL 30

void fun(char s[][COL],int n) 

{

char temp[COL];

int i,j;

for(i=0; i<n-1; i++)

/**/ for (j=i+1; j<n-1; j++) /**/ for (j=i+1; j<n; j++)

if(strcmp(s[i],s[j])>0)

{

strcpy(temp,s[i]);

strcpy(s[i],s[j]);

strcpy(s[j],temp);

}

}

void main()

{

int i;

char str[][COL]={"DEF","BAEELCS","FHIAME","CBADF","APMAE"};

/**/ fun(str,COL); /**/ fun(str,ROW);

clrscr();

for(i=0;i<ROW;i++)

printf("%s\n",str[i]);

getch();

/**/ /**/这个中间是有错的部分,右边是正确答案,而我不太理解的是/**/ for (j=i+1; j<n-1; j++) /**/ for (j=i+1; j<n; j++) 为什么不可以这样子写for (j=0; j<n-1; j++)

还有就是/**/ fun(str,COL); /**/ fun(str,ROW);COL为什么改成ROW,求会的大神详细解析下,谢谢


包小龙虾
浏览 1608回答 2
2回答

修裾欲溯空

懂了的话就采纳一下

修裾欲溯空

第一个问题,你自己去了解一下冒泡排序,它的模板一般是固定的,就是for(i=0; i<n-1; i++) for (j=i+1; j<n; j++)//n是属于的长度 第二个问题,row是数组中的内容的个数或者说有内容的长度,col是这个数组在储存空间中所占的空间。也就是说,一个数组的空间并没有全部装满,row就是装了东西的部分的长度
打开App,查看更多内容
随时随地看视频慕课网APP