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 gis中用栅格计算器或加权总和后图层不显示,值也明显不对
  • ¥15 python使用python-pptx如何给幻灯片添加只读密码。
  • ¥15 深度神经网络传递自变量损失
  • ¥15 删除s的前驱节点,但是不知道错哪里了
  • ¥15 oracle数据库备份表如何操作
  • ¥15 软件定义网络mininet和onos控制器问题
  • ¥15 微信小程序 用oss下载 aliyun-oss-sdk-6.18.0.min client报错
  • ¥15 ArcGIS批量裁剪
  • ¥15 labview程序设计
  • ¥15 为什么在配置Linux系统的时候执行脚本总是出现E: Failed to fetch http:L/cn.archive.ubuntu.com