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:大整数(指针专题)的主要内容,如果未能解决你的问题,请参考以下文章

蓝桥杯——动态规划专题

算法笔记1——蓝桥杯-入门训练 Fibonacci数列

(蓝桥杯)试题 算法训练 级数求和

蓝桥杯 阶乘计算

蓝桥杯 高精度加法

蓝桥杯刷题冲刺 | 倒计时9天