给你两个很大的数,你能不能判断出他们两个数的大小呢?
比如123456789123456789要大于-123456
111111111111111111111111111 88888888888888888888 -1111111111111111111111111 22222222 0 0
a>b a<b
#include<stdio.h>
#include<string.h>
int main()
{
char a[1001],b[1001];
while(scanf("%s %s",a,b),a[0]!='0'||b[0]!='0')
{
if(a[0]=='-'&&b[0]!='-')//当数组a为负,b为正时
printf("a<b\n");
else if(a[0]!='-'&&b[0]=='-')//当数组b为负,a为正时
printf("a>b\n");
else
{
int flag;
if(a[0]!='-')//当a为正时,此时b为正
{
int x=strlen(a),y=strlen(b);
if(x>y)
printf("a>b\n");
else if(x<y)
printf("a<b\n");
else
{
flag=strcmp(a,b);
if(flag<0)
printf("a<b\n");
else if(flag>0)
printf("a>b\n");
else
printf("a==b\n");
}
}
else//当a为负时b为负
{
int x=strlen(a),y=strlen(b);
if(x>y)
printf("a<b\n");
else if(x<y)
printf("a>b\n");
else
{
flag=strcmp(a,b);//字符串的比较按照字典序比较
if(flag<0)
printf("a>b\n");
else if(flag>0)
printf("a<b\n");
else
printf("a==b\n");
}
}
}
}
return 0;
} 原文:http://blog.csdn.net/u013238646/article/details/39504659