思路:大整数的比较需要通过数字字符串来比较
假设字符数组a[100], b[100]来存储输入的数值
一、a、b异号
1、a正,b负,函数返回值为1, a必大于b
2、a负,b正,函数返回值为-1,a必小于b
二、a、b同号
1、a正,b正
- 字符串a、b长度不相等
len1表示字符串a的长度,len2表示字符串b的长度
若len1 > len2, 函数返回值为1, a必大于b
若len1 < len2, 函数返回值为-1, a必小于b- 字符串a、b长度相等
使用字符串函数strcmp()来比较
若strcmp(a, b)返回值为1,表示a > b; 返回值为0,表示a = b; 返回值为-1,表示a < b;
2、a负,b负
- 字符串a、b长度不相等
len1表示字符串a的长度,len2表示字符串b的长度
若len1 < len2, 函数返回值为1, a必大于b
若len1 > len2, 函数返回值为-1, a必小于b- 字符串a、b长度相等
使用字符串函数strcmp()来比较
若strcmp(a, b)返回值为1,表示a < b; 返回值为0,表示a = b; 返回值为-1,表示a >b;
参考代码:
/*
大整数判断(带符号)
compare函数的返回值有1、-1、0;
返回值为1,表示a > b;
返回值为0, 表示a = b
返回值为-1, 表示a < b
*/
#include<stdio.h>
#include<string.h>
#define MAX 100
int compare(char *a, char *b) {
int len1 = strlen(a), len2 = strlen(b)