1169:大整数(指针专题)
Posted 鹿子沐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1169:大整数(指针专题)相关的知识,希望对你有一定的参考价值。
题目描述
输入3个非负大整数,位数不超过100位,按从小到大的顺序输出这三个整数。要求定义并使用如下函数比较两个大整数的大小。
int cmp(char *a,char *b)
//若大整数a大于b,返回1;
//若a小于b,返回-1;
// 若a与b相等,返回0
输入
输入有3行,每行输入一个大整数,位数不超过100位,输入不含前导0。
输出
输出3行,即排序后的3个大整数。
样例输入
样例1
1234567890123456789
99999999999999
111111111111111
样例2
1111
1111
1110
样例输出
样例1
99999999999999
111111111111111
1234567890123456789
样例2
1110
1111
1111
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int cmp(char *a,char *b);
int main() ///注意*str[3]
char p[100], *str[3];
for(int i = 0; i < 3; i++)
str[i] = (char *)malloc(100*sizeof(char));
gets(str[i]);
for(int i = 0; i < 3; i++)
for(int j = i+1; j < 3; j++)
if(cmp(str[i], str[j]) == 1)
strcpy(p, str[i]);
strcpy(str[i], str[j]);
strcpy(str[j], p);
for(int i = 0; i < 3; i++)
puts(str[i]);
return 0;
int cmp(char *a,char *b)
//若大整数a大于b,返回1;
//若a小于b,返回-1;
// 若a与b相等,返回0
int alen=0, blen=0, maxn;
alen = strlen(a);
blen = strlen(b);
maxn = (alen > blen) ? alen : blen;
if(alen > blen)
return 1;
else if(alen < blen)
return -1;
else if(alen == blen)
for(int i = 0; i < maxn; i++)
if(a[i] > b[i])
return 1;
if(a[i] < b[i])
return -1;
return 0;
ZZNUOJ_用C语言编写程序实现1159:逆序输出数组元素(指针专题)(附完整源码)
题目描述
从键盘上输入10个整数存放到一维数组中,用函数fun()实现将10个整数按输入时的顺序逆序排列,函数中对数据的处理要用指针方法实现。
void fun(int p[],int t) //将大小为t的一维数组p中的数据,从后往前输出所有元素
输入
一行输入10个整数,用空格隔开
输出
一行输出10个整数,用空格隔开
样例输入
0 1 2 3 4 5 6 7 8 9<
以上是关于1169:大整数(指针专题)的主要内容,如果未能解决你的问题,请参考以下文章