北飞的山羊 2022-10-24 20:30 采纳率: 50%
浏览 201

用键盘任意输入十个学生姓名(以拼音的形式),将他们按ASCII码的顺序从小到大排列

输入多组字符串的时候老是报错,想了很久对了,但模模糊糊,希望解答一下,最后将他们的值进行循环比较的结果顺序不对,希望解答一下

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2022-10-24 20:45
    关注

    你的代码呢?用strcmp比较啊

    //用键盘任意输入十个学生姓名(以拼音的形式),将他们按ASCII码的顺序从小到大排列
    #include <stdio.h>
    #include <string.h>
    int main()
    {
        char name[10][20],t[20];
        for(int i=0;i<10;i++)
            scanf("%[^\n]", name[i]);
        for(int i=0;i<9;i++)
            for(int j=0;j<9-i;j++)
            {
                if(strcmp(name[j],name[j+1]) > 0)
                {
                    strcpy(t,name[j]);
                    strcpy(name[j],name[j+1]);
                    strcpy(name[j+1],t);
                }
            }
        for(int i=0;i<10;i++)
            printf("%s\n",name[i]);
        return 0;
    }
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 10月24日