C语言字符串数组的一道题请大神看看我错哪了

C语言字符串数组的一道题请大神看看我错哪了题目在图片,我的代码在下面,请大神仔细看下,万分感谢。#include<stdio.h>#include<string.h>vo... C语言字符串数组的一道题请大神看看我错哪了题目在图片,我的代码在下面,请大神仔细看下,万分感谢。
#include<stdio.h>
#include<string.h>
void paixu(char a[5][20],int m)
{
char t[5][20];
int i,j;
for(j=0;j<m-1;j++)
for(i=0;i<m-1-j;i++)
{
if(strlen(a[i])>strlen(a[i+1]))
{
strcpy(t[i],a[i]);
strcpy(a[i],a[i+1]);
strcpy(a[i+1],t[i]);
}
}
}
int main(void)
{
char a[5][20];
int i,m;
scanf("%d",&m);
for(i=0;i<m;i++)
gets(a[i]);
paixu(a,m);
for(i=0;i<m;i++)
{puts(a[i]);
printf("\n");
}
return 0;

}
展开
 我来答
White_MouseYBZ
2017-03-30 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6652万
展开全部
  1. 把gets(a[i]);改成scanf("%s",a[i]);或把在gets(a[i]);前加一句fflush(stdin);并用{}把fflush(stdin);和gets(a[i]);括起来。

  2. 把printf("\n");移到for前面去。

追问
请问为什么不能这么用gets啊?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式