资源简介
c语言实现的大数四则运算
代码片段和文件信息
#include
#include
#include
#define MAX 400
void my_read(int *a)
{
int leniflag=0;
char s[MAX];
aa:
while(1)
{
scanf(“%s“&s);
len=strlen(s);
if (s[0]==‘-‘) flag=1;
for(i=len-flag;i>=1;i--)
{
if ((s[len-i]-‘0‘)<0||(s[len-i]-‘0‘)>9)
{
printf(“\t\t\t你输入的第%d位不合法,按任意键重新输!!“len-i+1);
//getch();
goto aa;
}
else
a[i]=s[len-i]-‘0‘;
}
if (flag)
a[0]=-(len-1);
else
a[0]=len;
break;
}
return;
}
void my_print(int *a)
{
int i;
if (a[0]<0) printf(“-“);
if (a[0]==0)
{
printf(“0“);
return;
}
for(i=fabs(a[0]);i>=1;i--)
printf(“%d“a[i]);
printf(“\n“);
}
void format(int *a)
{
int p;
for(p=1;p=10;p++)
{
if (p>=a[0]) a[p+1]=0;
a[p+1]+=a[p]/10;
a[p]=a[p]%10;
}
if (p>=a[0]) a[0]=p;
return;
}
void add(int *aint *bint *c)
{
int leni;
if (a[0]else len=b[0];
for(i=1;i<=len;i++)
c[i]=a[i]+b[i];
if (len{
for (;i<=a[0];i++)
c[i]=a[i];
c[0]=a[0];
}
else
{
for(;i<=b[0];i++)
{
c[i]=b[i];
}
c[0]=b[0];
}
format (c);
}
void commaltiply (int *aint xint *b)
{
int i;
for(i=1;i<=a[0];i++)
b[i]=a[i]*x;
b[0]=a[0];
format(b);
return;
}
void matiply(int *aint *bint *c)
{
int itemp[MAX]j;
commaltiply(ab[1]c);
for(i=2;i<=b[0];i++)
{
if (b[i]==0)
{
c[0]++;
for (j=c[0];j>1;j--)
c[1]=0;
}
else
{
commaltiply(ab[i]temp);
for(j=1;jcommaltiply(temp10temp);
add(ctempc);
}
}
}
void dectobin(int *aint *b)
{
int p;
b[0]=0;
while(a[0]>0)
{
b[0]++;
b[b[0]]=a[1]%2;
p=a[0];
while(p>0)
{
if (a[p]%2 && p>1) a[p-1]+=10;
a[p]/=2;
if (a[a[0]]==0) a[0]--;
p--;
}
}
}
void format1(int *a)
{
int i;
for (i=1;i<=a[0];i++)
if (a[i]<0)
{ a[i]+=10;
a[i+1]-=1;
}
}
void sub_1(int *aint *bint *c)
{
int i;
for (i=1;i<=b[0];i++)
c[i]=a[i]-b[i];
if (a[0]==b[0]) goto loop;
for (;i<=a[0];i++)
c[i]=a[i];
loop:
c[0]=a[0];
format1(c);
i=c[0];
while(1)
if (c[i]==0) i--;
else break;
c[0]=i;
return;
}
void sub(int *aint *bint *c)
{
int iflag=0;
for (i=1;i<=a[0];i++)
if (a[i]!=b[i]) {flag=1;break;}
if (flag==0)
{
c[0]=0;
return;
}
flag=0;
if (a[0]==b[0])
{
i=a[0];
while(i>0)
{
if (a[i]>b[i])
{
sub_1(abc);
break;
}
if (a[i]{
flag=1;
sub_1(bac);
break;
}
i--;
}
}
if (a[0]>b[0])
sub_1(abc);
else
if (a[0]{
flag=1;
sub_1(bac);
}
if (flag)
c[0]=-c[0];
else
c[0]=c[0];
}
int main()
{
int ia[MAX]b[MAX]c[MAX];
char yn;
strat:
while(1)
{
printf(“\n\n\n“);
printf(“\t\t\t**************************************\n“);
printf(“\t\t\t* *\n“);
printf(“\t\t\t* 1.大整数的加法 *\n“);
printf(“\t\t\t* 2.大整数的减法 *\n“);
printf(“\t\t\t* 3.大整数的乘法 *\n“);
printf(“\t\t\t* 4.大整数进制转换 *\n“);
printf(“\t\t\t* 5.帮助 ?*\n“);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5251 2011-12-19 18:05 大数运算.cpp
----------- --------- ---------- ----- ----
5251 1
- 上一篇:mfc ActiveX 结构体数组的传递
- 下一篇:学生成绩管理系统C语言
相关资源
- 学生成绩管理系统C语言
- 学生学分综合管理系统
- c语言运动会分数统计
- svd分解的C语言实现
- c语言课程设计学生选课系统
- 简易秒表时钟的设计含C语言及proteu
- C语言DFT计算
- 大作业C语言的五子棋全套
- c语言编写的置换密码源代码
- 最小RTSP服务器,C语言代码
- 用链表实现多项式加减法运算
- 郁闷的出纳员(c语言)
- 音频编码pcm的c语言实现
- aes密钥扩展C语言实现
- 运动会分数统计系统 c语言
- c语言课程设计_实验设备管理系统
- C语言 实现离散数学真值表
- C语言电梯的模拟运行课程设计实验报
- 斗地主课程设计 c语言版
- Koch曲线C语言
- 连连看游戏C语言代码
- C语言程序设计报告——虚拟示波器
- 拉格朗日插值、分段线性插值、三次
- 数据结构程序设计学生成绩管理系统
- 模式识别:模糊C均值算法实现iris数据
- C语言的kmeans算法,简单,注释详细
- 由NFA状态转换表到DFA状态转换表 C语言
- C语言 3DES、AES、RC6、TEA、RSA、MD5、S
- 超简单的ntrip客户端C语言实现.docx
- 控制方法的C语言实现
评论
共有 条评论