大整数乘法c语言代码注释,大整数加法C语言

本文目录一览:

c语言 大整数乘法

#include stdio.h

#includestring.h

int main()

{

int i,j,k=0;

char a[201]=”0″,b[201]=”0″,c[401]=”0″; //这里将c[0]设为‘0’,影响到下面输入

scanf(“%s%s”,a,b);

for (i=0;i=strlen(a)-1;i++)

for (j=0;j=strlen(b)-1;j++)

{c[i+j+1]+=(a[i]-‘0’)*(b[j]-‘0’);}

k=(strlen(a)+strlen(b)-1);

for (;k=1;k–)

{

c[k-1]+=c[k]/10;

c[k]=c[k]%10; //这一步会将c[k]破坏,所以倒转

}

if(c[0]!=’0′) //若最高位为0,则不输出;

printf(“%c”,c[0]);

j=strlen(a)+strlen(b);

for (i=1;ij;i++)

{

printf(“%d”,c[i]);

}

return 0;

}

======================================

系统报错的原因是c[1]是char型,不是字符串数组,要用%c而是%s,我想你是把i写成了1了

c语言大整数乘法

dc这个函数里面连b这个参数都没有使用,这也能出结果…,

if(z[0]=’0′)continue 也写错了

不是打击你,你的代码太滥了,实在不想去找错误,给你我以前写的代码吧,你自己整理一下

#include stdio.h

int mulx(char * a,int b,char * r,int d);

void init(char * s);

char buf1[4*1024];

char buf2[4*1024];

char buf3[4*1024];

int main()

{

char * a;

char * b;

char * r;

char * t;

int d;

int i;

a = buf1;

b = buf2;

r = buf3;

init(NULL);

while(scanf(“%s %d”,a,d)!=EOF)

{

mulx(a,d,r,10);

printf(“%s\n”,r);

}

return 0;

}

char c2d[256]; //字符转换成数字

char * charset; //代表数字的字符

/*功能:设置使用那些字符表示数字,默认的为”0123456789ABCDEF”*/

/*参数:*/

/*返回值:*/

void init(char * s)

{

int i;

if(s==NULL)

charset = “0123456789ABCDEF”;

else

charset = s;

for(i=0;i256;i++)

c2d[i] = 0;

for(i=0;charset[i];i++)

c2d[charset[i]] = i;

}

/*功能:清除前导零*/

/*参数:需要清楚的数字*/

/*返回值:清零后数字的位数*/

int clearZeros(char * a)

{

int i,j;

for(i=0;a[i]==charset[0];i++);

for(j=0;a[i];i++,j++)

a[j] = a[i];

a[j] = 0;

if(j==0)

{

a[j++] = charset[0];

a[j] = 0;

}

return j;

}

/*功能:乘,用于进制转换之类*/

/*参数:a 和 b 分别为乘数,结果保存到 r , d 为使用的进制*/

/*注意:r 可以等于 a , b一定要小于d, 如果被乘数有前导0 则结果也会有前导0*/

/*返回值:结果的位数*/

int mulx(char * a,int b,char * r,int d)

{

int i,j,k,len;

int c,t;

if(r==NULL)

r = a;

for(i=0;a[i];i++);

len = k = i;

for(c=0,i–,r[k–]=0;i=0 ;i–,k–)

{

t = c2d[a[i]] * b + c ;

c = t/d;

r[k] = charset[t%d];

}

if(c)

{

for(i=len,j=++len;i=0;i–,j–)

r[j] = r[i];

r[0]=charset[c];

}

return len;

}

C语言 大整数乘法 求代码

#include stdio.h #include string.h #define Maxline 300 void main() { void mul(char str1[],char str2[]); char str1[Maxline],str2[Maxline]; scanf(“%s%s”,str1,str2); mul(str1,str2); } void mul(char str1[],char str2[]) { int i,j,length1,length2,tag; int num1[Maxline],num2[Maxline],num3[Maxline]; length1=strlen(str1); length2=strlen(str2); for(i=0;iMaxline;i++) { num1[i]=0; num2[i]=0; num3[i]=0; } j=0; for(i=length1-1;i=0;i–) { num1[j]=str1[i]-‘0’; j++; } j=0; for(i=length2-1;i=0;i–) { num2[j]=str2[i]-‘0’; j++; } for(j=0;jlength2;j++) for(i=0;ilength1;i++) { num3[i+j]+=num1[i]*num2[j]; while(num3[i+j]=10) { num3[i+j]-=10; num3[i+j+1]++; } } for(i=Maxline-1;i=0;i–) { if(num3[i]!=0) { tag=i; break; } } for(i=tag;i=0;i–) { printf(“%d”,num3[i]); } printf(“\n”); }

c语言大整数的乘法

nums[]为指针变量数组

nums[i]=j仅能表示将nums[i]存储的地址改为了j

若想修改其值,需加*,即*nums[i]=j;

或nums[i]=j;

你的程序里貌似很多地方这个都弄反了,改正后应该就没有问题了…

原创文章,作者:WECG,如若转载,请注明出处:https://www.506064.com/n/133854.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
WECGWECG
上一篇 2024-10-04 00:02
下一篇 2024-10-04 00:02

相关推荐

  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • 如何输入三个整数,并输出最大值Python

    对于初学者来说,输入三个整数并输出它们的最大值可能是一个比较基础的问题。然而,它却包含了Python中许多基本知识点的应用,因此学习它可以让我们更好地理解Python编程语言。 一…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • Python被称为胶水语言

    Python作为一种跨平台的解释性高级语言,最大的特点是被称为”胶水语言”。 一、简单易学 Python的语法简单易学,更加人性化,这使得它成为了初学者的入…

    编程 2025-04-29
  • Python随机生成100内的10个整数

    本文将从以下几个方面详细阐述Python随机生成100内的10个整数: 一、random库介绍 在Python中,生成随机数可以使用random库。random库包括两种类型的函数…

    编程 2025-04-29
  • 全能编程开发工程师必备技能——如何优化大整数的计算

    本文将会为你分享如何解决大整数计算问题,以9999999967为例,我们将从多个方面对其做详细阐述,并给出完整的代码示例。 一、大整数的表示方法 在计算机中,我们通常采用二进制数来…

    编程 2025-04-29
  • OpenJudge答案1.6的C语言实现

    本文将从多个方面详细阐述OpenJudge答案1.6在C语言中的实现方法,帮助初学者更好地学习和理解。 一、需求概述 OpenJudge答案1.6的要求是,输入两个整数a和b,输出…

    编程 2025-04-29
  • Python按位运算符和C语言

    本文将从多个方面详细阐述Python按位运算符和C语言的相关内容,并给出相应的代码示例。 一、概述 Python是一种动态的、面向对象的编程语言,其按位运算符是用于按位操作的运算符…

    编程 2025-04-29
  • 整数的因子包含自身吗

    本篇文章将从数学概念的角度、常用算法的应用、程序实现的方法等多个方面,对整数的因子包含自身的问题进行详细阐述。 一、质因数分解法 将整数进行质因数分解,若分解结果中所有质因子的指数…

    编程 2025-04-29
  • Python语言由荷兰人为中心的全能编程开发工程师

    Python语言是一种高级语言,很多编程开发工程师都喜欢使用Python语言进行开发。Python语言的创始人是荷兰人Guido van Rossum,他在1989年圣诞节期间开始…

    编程 2025-04-28

发表回复

登录后才能评论