给你两个很大的数,你能不能判断出他们两个数的大小呢?
比如123456789123456789要大于-123456
111111111111111111111111111 88888888888888888888 -1111111111111111111111111 22222222 0 0
a>b a<b
开始提交的时候忘了a==b了~结果错了。。不要忘了考虑!
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
char a[1001],b[1001];
int lena,lenb,i,count;
while(scanf("%s%s",&a,&b))
{
count=0;
lena=strlen(a);
lenb=strlen(b);
if(lena==1 && lenb==1&&strcmp(a,"0")==0 &&strcmp(b,"0")==0)
break;
if(a[0]=='-'&&b[0]!='-')
cout<<"a<b"<<endl;
else if(a[0]!='-' &&b[0]=='-')
cout<<"a>b"<<endl;
else if(a[0]!='-' &&b[0]!='-')
{
if(lena>lenb)
cout<<"a>b"<<endl;
else if(lena<lenb)
cout<<"a<b"<<endl;
else
{
for(i=0;i<lena;i++)//aabc aace
{
if(a[i]>b[i])
{
cout<<"a>b"<<endl;
break;
}
else if(a[i]==b[i])
{
count++;
continue;
}
else
{
cout<<"a<b"<<endl;
break;
}
}
if(count==lena)
cout<<"a==b"<<endl;
}
}
else if(a[0]=='-'&&b[0]=='-')
{
if(lena>lenb)
{
cout<<"a<b"<<endl;
}
else if(lena<lenb)
{
cout<<"a>b"<<endl;
}
else
{
for(i=0;i<lena;i++)//aabc aace
{
if(a[i]>b[i])
{
cout<<"a<b"<<endl;
break;
}
else if(a[i]==b[i])
{count++;
continue;
}
else
{
cout<<"a>b"<<endl;
break;
}
}
if(count==lena)
cout<<"a==b"<<endl;
}
}
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/zuguodexiaoguoabc/article/details/46830977