利用3×20的二维字符数组存放3个字符串,找出其中最大的字符串并输出。
输入格式:

在3行分别输入3个字符串,在字符串中不要出现换行符,空格,制表符
输出格式:

在两行中按照“The largest string is:(换行)最大字符串”的顺序输出。
输入样例:

as
qwer
zxc

输出样例:

The largest string is:
zxc

难道最大的字符串不应该是qwer吗?为什么会是zxc呢

#include <iostream>
#include <cstdlib>
#include <iomanip>
using namespace std;
int main(){
  string str[3];
  string s;
  int i;
  for(i=0;i<3;i++)
  {
   getline(cin,str[i]);
  }

    for(i=0;i<2;i++)
  {
    if(str[i]<str[i+1])
      s=str[i+1];
   }

  cout<<"The largest string is:" <<endl;
  cout<<s;

   return 0;
}

我用这样的代码输出的还真是zxc

#include <iostream>
#include <cstdlib>
#include <iomanip>
using namespace std;
int main(){
  string str[3];
  string max;
  int i,length1,length2;
  for(i=0;i<3;i++)
  {
   getline(cin,str[i]);
  }
    for(i=0;i<2;i++)
  {
      length1=str[i].length();
      length2=str[i+1].length();
    if(length1<length2)
      max=str[i+1];
   }
  cout<<"The largest string is:" <<endl;
  cout<<max;

   return 0;
}

但是我换成length的话就变成了qwer是最大字符串了,
能帮我解答一下为什么用string比较和用length比较会出现两种不一样的结果吗


  • vicky    2020-04-02 13:36:46
  • 阅读 1226    收藏 0    回答 1
  • 邀请
  • 收藏
  • 分享
发送
登录 后发表评论
  • 51testing软件测试圈微信