aaasdfgzzy 2022-04-14 11:40 采纳率: 79.4%
浏览 44
已结题

编程,在主函数中输入10个最长不超过20个字符的字符串,用另一个函数完成对这10个字符串降序排序,然后在主函数中再输出排序后的字符串。

//用指针数组处理,程序有问题,求改错。

#include<stdio.h>
#include<string.h>
void px(char *p[10],int n)
{
    int i,j,k;
    char *t;
    for(i=0;i<n;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
            if(strcmp(p[i],p[j])>0) k=j;
        if(k!=i)
        {
            t=p[i];
            p[i]=p[k];
            p[k]=t;
        }
    }
}
int main()
{
    char *p[10];
    int i;
    printf("请获得十串字符串:\n");
    for(i=0;i<10;)
        scanf("%s",p[i]);
    printf("字符串降序排序后为:\n");
    px(p,10);
    for(i=0;i<10;i++)
        printf("\n%s\n",*p[i]);
    return 0;
}


  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-04-14 12:18
    关注

    修改处见注释,供参考:

    #include<stdio.h>
    #include<string.h>
    void px(char* p[10], int n)
    {
        int i, j, k;
        char* t;
        for (i = 0; i < n - 1; i++) // 修改
        {
            k = i;
            for (j = i + 1; j < n; j++)
                if (strcmp(p[k], p[j]) > 0) k = j; //修改  if(strcmp(p[i],p[j])>0) k=j;
            if (k != i)
            {
                t = p[i];
                p[i] = p[k];
                p[k] = t;
            }
        }
    }
    int main()
    {
        char a[10][20], * p[10];   //修改
        int i;
        printf("请获得十串字符串:\n");
        for (i = 0; i < 10; i++){ //修改  for(i=0;i<10;)
            scanf("%s", a[i]);   //修改
            p[i] = a[i];         //修改
        }
        printf("字符串降序排序后为:\n");
        px(p, 10);
        for (i = 0; i < 10; i++)
            printf("\n%s\n", p[i]); //修改 printf("\n%s\n",*p[i]);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月14日
  • 已采纳回答 4月14日
  • 创建了问题 4月14日

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题