#include<stdio.h>
#include<string.h>
int fun(char a[10][100])
{
int i,j;
char temp[100];
for(i=0;i<10;i++)
{
for(j=0;j<10-i;j++)
{
if(strcmp(a[i],a[j])>0)
strcpy(temp,a[i]);
strcpy(a[i],a[j]);
strcpy(a[j],temp);
}
}
}
int main()
{
char str[10][100];
int j,i;
printf("请输入10个字符:");
for(i=0;i<10;i++)
scanf("%s",(str+i));
fun(str);
printf("排序后的数组输出为:");
for(j=0;j<10;j++)
printf("%s",*str[i+j]);
return 0;
}求解哪出问题了
在主函数中输入10个字符串,用另一个函数对字符串进行排序,然后由主函数输出排好序的字符串
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- yun6853992 2022-03-01 20:30关注
我试着调试了一下 但是还我没有关注你这里得对比函数逻辑 不确定是否符合
只是调试了一下相关问题,你可以用beyond compare比较一下我的代码和你的代码,思考你的代码问题我是vs2019上测试得,用二维数组表示字符串得知识点你有点模糊,字符串是首地址去取字符串得,以'\0'为终结得
所以 二维数组你可以理解成存储字符串得一维数组(一维数组存储字符串),这些概念梳理一下~一下子让你理解二维数组存储字符串有点深,你可以从一维数组存储字符串,初始化,打印,取数据理解练习一下
int fun(char a[10][100]) { int i, j; char temp[100]; for (i = 0; i < 10; i++) { for (j = 0; j < 10 - i; j++) { if (strcmp(a[i], a[j]) > 0) { strcpy_s(temp, a[i]); strcpy_s(a[i], a[j]); strcpy_s(a[j], temp); } } } return 0; } int main() { char str[10][100] = {0}; int j, i; printf("请输入10个字符:"); for (i = 0; i < 10; i++) { scanf_s("%s", str[i], 100); //str[i][strlen(str[i])] = '\0'; } printf("start ...\n"); for (j = 0; j < 10; j++) printf("%s ", str[j]); printf("\n"); fun(str); printf("排序后的数组输出为:"); for (j = 0; j < 10; j++) printf("%s ", str[j]); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 csmar数据进行spss描述性统计分析
- ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
- ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
- ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
- ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
- ¥15 运动想象脑电信号数据集.vhdr
- ¥15 三因素重复测量数据R语句编写,不存在交互作用
- ¥15 微信会员卡等级和折扣规则
- ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
- ¥15 随身WiFi网络灯亮但是没有网络,如何解决?