C语言问题!!急求大神解答

有如下二维数组chara[][8]={"_c","Language","abcde","fghij","klmno","VC++"}。写一个函数,函数声明为char*so... 有如下二维数组char a[][8]={"_c","Language","abcde","fghij","klmno","VC++"}。写一个函数,函数声明为 char *sort(char(*)[8],int n,int i,int j);n表示形参数组的行数,当i与j相等且为0的时候,表示将形参数组按行重新排序,排序规则是:先按字符串长度由大到小排序,如果长度相等则按字符串的大小从大到小排序,返回值指向第一行首地址。当i与j相等且为正数的时候,不用排序,返回指向形参数组中第一个长度为j的字串的首地址,若没有这种长度的字串输出“the string is not found!”,返回空指针。当i与j不相等且都小于n的时候,交换i+1行与j+1行,返回交换后第i+1行的首地址。若输入的i和j不符合上述条件,输出“i or j is wrong!”,返回空指针。 利用这个函数实现:1、将a排序,输出a。2、交换排序后的第2行和第3行,输出a。3、输出经过第1、2步之后长度为l的字串的最后一个字母字符,如果字串中没有字母,输出“没有字母”。(l=4)。 展开
 我来答
宏原藏容
2019-08-18 · TA获得超过3750个赞
知道小有建树答主
回答量:3145
采纳率:25%
帮助的人:439万
展开全部
您好,void
f1(int
a[],int
n)
{
int
t,i,j;
for(i=1;i<n;i++)
for(j=0;j<n-1;j++)//这里错了,应该是j=i;
if(a[j]>a[j+1])
{
t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
冒泡排序,要特别注意循环的变化;
里面的for语句每被执行了后j的值就变为了n+1,j需要从新赋值,而
每一次就排出一个值,故j=i;
即每排一次里面的循环就少循环一次。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式