大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
前言 :
通过前面的3篇文章我们已经实现了大数的四则运算,本篇博客我们会把这是几个个方法做成一个库文件,可以供自己日后使用。细心的读者可能意到了,每个程序都引用了big.h但是都被注释掉了。big.h就是头文件只要将函数的声明放到该文件中,然后在其它程序中引用该文件就可以使用大数运算的方法。重复的代码我就不再写了,其实有了算法你们自己就可以实现,所以我就简单的说几句。
文件命名:
头文件: big.h 源码在本篇
大数加法:big_add.c 完整源码在加法篇
大数减法:big_sub.c 完整源码在减法篇
大数乘法:big_mul.c 完整源码在乘除法篇
大数除法:big_div.c 完整源码在乘除法篇
测试文件:main.c 源码在本篇
实现:
1.将每个源码文件中的main函数去掉,将big.h注释取消。
2.编写big.h代码如下。
1 char * bigadd(char *adda,int lena,char *addb,int lenb);
2 char * bigsub(char *suba,int lena,char *subb,int lenb);
3 char * bigmul(char *m,int lena,char *f,int lenb);
4 char * bigdiv(char *diva,int lena,char *divb,int lenb);
3.编写一个测式的文件,代码如下。
1 #include"big.h"
2 #include<string.h>
3 #include<stdlib.h>
4 #include<stdio.h>
5 int lena,lenb;
6 char *result;
7 char sa[BUFSIZ],sb[BUFSIZ];
8 void getdata(){
9 scanf("%s",sa);
10 scanf("%s",sb);
11 lena=strlen(sa);
12 lenb=strlen(sb);
13
14 }
15 void myadd(void){
16 getdata();
17 result=bigadd(sa,lena,sb,lenb);
18 puts(result);
19 }
20 void mysub(void){
21 getdata();
22 result=bigsub(sa,lena,sb,lenb);
23 puts(result);
24 }
25 void mymul(void){
26 getdata();
27 result=bigmul(sa,lena,sb,lenb);
28 puts(result);
29 }
30 void mydiv(void){
31 getdata();
32 result=bigdiv(sa,lena,sb,lenb);
33 puts(result);
34 }
35
36 int main(){
37 myadd();
38 mysub();
39 mymul();
40 mydiv();
41 return 0;
42 }
编译和测试:
gcc big_add.c big_sub.c big_mul.c big_div.h
./a.out
C语言大数运算,参考了很多人的博客和代码,学到了很多,在这里表示感谢。这次对大数运算的小小总结也是希望可以帮到有需求的人,哪怕一点点。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/185061.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...