m0_67511265 2022-03-01 19:56 采纳率: 69.2%
浏览 143
已结题

在主函数中输入10个字符串,用另一个函数对字符串进行排序,然后由主函数输出排好序的字符串

#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;
}求解哪出问题了

  • 写回答

1条回答 默认 最新

  • yun6853992 2022-03-01 20:30
    关注

    我试着调试了一下 但是还我没有关注你这里得对比函数逻辑 不确定是否符合
    只是调试了一下相关问题,你可以用beyond compare比较一下我的代码和你的代码,思考你的代码问题

    我是vs2019上测试得,用二维数组表示字符串得知识点你有点模糊,字符串是首地址去取字符串得,以'\0'为终结得
    所以 二维数组你可以理解成存储字符串得一维数组(一维数组存储字符串),这些概念梳理一下~

    一下子让你理解二维数组存储字符串有点深,你可以从一维数组存储字符串,初始化,打印,取数据理解练习一下

    img

    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;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月9日
  • 已采纳回答 3月1日
  • 创建了问题 3月1日

悬赏问题

  • ¥15 使用ESP8266连接阿里云出现问题
  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角