HPU 1064 找最长名字

1064: 姓名介绍 [字符串]


题目描述

走进校园,杨八方陶醉在大学的气氛之中。馨月湖水映射着阳光,阵阵新生带来了崭新的活力,让人心旷神怡,倍感愉悦。

在新生报到处办理完相关手续,八方同学来到了宿舍。向宿管阿姨登记之后,八方来到了今后生活的房间。进入房门,却见到已有小伙伴到了宿舍。

经过了一番寒暄(此处省略数万字……),八方不禁感叹到,现在年轻人取的名字都真奇怪。

之后,杨八方添加了班级的QQ群。为了尽早认识同学们,杨八方翻看群成员的备注,一眼就看到有个人的名字特别长……

那么问题来了,如果把所有人的名字用拼音表示,能否快速找出其中最长的那个呢?

输入

第一行为一个整数nn ( 0<n<1000<n<100 ),代表有nn个同学。

下面nn行每行有一个只含小写字母的字符串(长度不超过20),代表该同学的姓名。

保证最长的姓名只有一个。

输出

输出最长的姓名。

样例输入

4
zhenqiguai
yangqifang
yangbafang
yangjiufang

样例输出

yangjiufang

AC

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    char name[101],temp[101];//temp存放比较后最长名字 
    int i,n;
    cin>>n; 
    getchar();
    for( i=0;i<n;i++)
    {
          gets(name);
          if (strlen(name)>strlen(temp) )
                strcpy(temp,name);//后者复制给前者 
    }
    cout<<temp;
    return 0;
}



编译不通过:

#include<iostream>

#include<cstring>
using namespace std;
int main()
{
int n,i,maxn;//maxn保存长度,l保存最长字符 
char str[105],l;
cin>>n;
getchar();
for(i=0;i<n;i++)
{
cin>>str[i];
}
        maxn=strlen(str[0]);
        for(i=0;i<n;i++)
        {
            if(strlen(str[i])>maxn)
            {
            maxn=strlen(str[i]);
                strcpy(l,str[i]);
}
        }
        cout<<l;
    return 0;
}
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页