为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C
包小龙虾 2018-08-08 21:53:53
C语言改错题,题目:实现n个字符串的升序排列#include <stdio.h>#include <string.h>#define ROW 5#define COL 30void 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,求会的大神详细解析下,谢谢
查看完整描述

2 回答

?
修裾欲溯空

TA贡献34条经验 获得超4个赞

懂了的话就采纳一下

查看完整回答
反对 回复 2018-08-09
?
修裾欲溯空

TA贡献34条经验 获得超4个赞

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

查看完整回答
反对 回复 2018-08-09
  • 2 回答
  • 0 关注
  • 1567 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信