- 我觉得自己写的是错的,运行结果却是正确的,而我用认为是正确的运行却不对?
- 问题就在于a【n】应该是n个字符串,也就是从0到n-1,所以我下面的for里面也应该是i小于等于n-1,之后两个for里面也依次是n-2和n-1,所以我认为现在图上这个不对,但为什么结果却恰恰相反?
c语言用字典顺序排序单词
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- it_hao528 2022-07-16 23:55关注
1、for循环应该是小于n,而不是小于等于,n个元素是从0~(n-1)一共n个所以应该是小于。
2、使用gets当for循环开始i=0的时候,gets获取到了空给a[0],所以能输入的个数是n-1个,排序之后输出的第一个也是空值。
3、建议使用scanf来获取输入给a[i],同时搭配system("cls"),清除上一次的缓存。代码参考如下:int main() { int n,i,j; puts("请输入待排序的单词的个数"); scanf("%d", &n); char a[n][11], t[11]; puts("请依次录入待排序的单词且与上方确认的单词数保持一致"); system("cls"); for (i = 0; i < n; i++) { scanf("%s", a[i]); } for (i = 0; i < n - 1; i++) { for (j = i + 1; j < n; j++) { if (strcmp(a[i], a[j]) > 0) { strcpy(t, a[i]); strcpy(a[i], a[j]); strcpy(a[j], t); } } } for (i = 0; i < n; i++) { puts(a[i]); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 Vue3 大型图片数据拖动排序
- ¥15 划分vlan后不通了
- ¥15 GDI处理通道视频时总是带有白色锯齿
- ¥20 用雷电模拟器安装百达屋apk一直闪退
- ¥15 算能科技20240506咨询(拒绝大模型回答)
- ¥15 自适应 AR 模型 参数估计Matlab程序
- ¥100 角动量包络面如何用MATLAB绘制
- ¥15 merge函数占用内存过大
- ¥15 使用EMD去噪处理RML2016数据集时候的原理
- ¥15 神经网络预测均方误差很小 但是图像上看着差别太大