从键盘接收入用户五个姓名,将这些字符串按照升序排序输出

//首先要明白字符串的排序是根据ASCII大小排序,而不是长短,这个在测试数据的时候很重要
//然后分析题意要输入五个学生的姓名,首先就是用gets,puts输入输出,详情看下:
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
using namespace std;
int main()
{
    int i,j,p;
    char str[20],name[5][20];//因为是输入的字符数组,所以要定义一个字符串进行字符串的赋值
    for(i=0;i<5;i++)//循环输入五个名字

    {
        gets(name[i]);
    }

    for(i=0;i<5;i++)
    {
        //p是为了存储i的实时地址,先将输入的字符数组赋值给str字符串
        p=i;
        strcpy(str,name[i]);
        //从这个字符串往后输入的字符数组与该字符串进行比较,如果后面小的话,将后面的字符串赋值给前面的字符串
        //也将j赋值给p,更新P的地址
    for(j=i+1;j<5;j++)
    {
        if(strcmp(name[j],str)<0)
            {
                p=j;
                strcpy(str,name[j]);
            }
    }
    //如果p不等于i就说明后面的一定更小,交换两个字符串
            if(p!=i)
            {
                strcpy(str,name[i]);
                strcpy(name[i],name[p]);
                strcpy(name[p],str);
            }
            puts(name[i]);
            cout<<endl;//换行进入下一个
        }
    return 0;
}

全部评论

相关推荐

01-04 07:53
门头沟学院 C++
心愿便利贴:工作了以后回头再看待这个问题,从客观的视角来讲是因为每个人对自己的要求不同,学习好的人对自己的要求很高,所以觉得考不好就天塌了,认为自己学习好并且值得一份好工作的人也是一样,找不到符合自己预期的工作肯定也会觉得是侮辱,牛客上有很多名校大学生,肯定会存在这种好学生心态啊,“做题区”从来都不是贬义词,这是大部分普通人赖以生存的路径,这个有什么好嘲讽的,有“好学生心态”没有错,但是不要给自己太大的压力了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务