题目描述
输入3个大整数,位数不超过100位,按从小到大的顺序输出这三个整数。要求定义并使用如下函数比较两个大整数的大小。
int cmp(char *a,char *b)
{
//若大整数a大于b,返回1;
//若a小于b,返回-1;
// 若a与b相等,返回0
}
输入
输入有3行,每行输入一个大整数,位数不超过100位,输入不含前导0。
输出
输出3行,即排序后的3个大整数。
样例输入
1234567890123456789
99999999999999
111111111111111
样例输出
99999999999999
111111111111111
1234567890123456789
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#define N 101
//先比较长度 在长度相同的情况下再比较大小
int cmp(char* a, char* b)
{
int m, n;
m = strlen(a);
n = strlen(b);
if (m > n)
{
return 1;
}
else if (m < n)
{
return -1;
}
else
{
if (strcmp(a, b) > 0)
return 1;
else if (strcmp(a, b) < 0)
return -1;
else
return 0;
}
}
int main()
{
char ch1[N], ch2[N], ch3[N];
gets(ch1);
gets(ch2);
gets(ch3);
char* temp, * a, * b, * c;
a = ch1;
b = ch2;
c = ch3;
if (cmp(a, b) == 1)
{
temp = a;
a = b;
b = temp;
}
if (cmp(a, c) == 1)
{
temp = a;
a = c;
c = temp;
}
if (cmp(b, c) == 1)
{
temp = b;
b = c;
c = temp;
}
printf("%s\n%s\n%s\n", a, b, c);
return 0;
}
标签:专题,return,temp,int,1169,整数,char,cmp,指针 From: https://blog.csdn.net/qq_61584181/article/details/137511124