C语言两个乘法计算后相加

Python019

C语言两个乘法计算后相加,第1张

/*

本程序假设所输入的大数均在20位以内,并且输入数字时候假定不出现非法情况(例如不存在这样情况123a78ty等)

这里只完成了大数的乘法运算

*/

#include

"stdio.h"

#define MAX 21

void InputNumber(int [])//输入大数

void InitNumber(int [])

//初始化用于存放结果的数组

void Multi(int [],int [],int [])//进行大数乘法

void

singleMulti(int [],int,int [])//对大数乘以一位数的函数

void Add(int [],int [])

//对结果进行错位相加

void printresult(int [])//输出结果

void main()

{

int largenumber1[MAX],largenumber2[MAX],mResult[2 * MAX

-1]

//largenumber1[]和largenumber2[]表示要相乘的大数

//mResult[]表示结果存放的数组,显然其位数不会超过2

* (MAX - 1)

printf("Input the first

number:\n")

InputNumber(largenumber1)

printf("Input the second

number:\n")

InputNumber(largenumber2)

InitNumber(mResult)

Multi(largenumber1,largenumber2,mResult)

printf("The

result is:\n")

printresult(mResult)

getchar()

}

void InputNumber(int largenumber[])

{

char numberchar

int i =

0

scanf("%c",&numberchar)

while(numberchar != '\n' &&i <

MAX) //最初输入大数用字符串表示

{

largenumber[++i] = numberchar -

'0'

scanf("%c",&numberchar)

}

largenumber[0] = i

}

void InitNumber(int result[])

{

for(int i = 0i <2 * MAX - 1

i++)

result[i] = -1

}

void Multi(int number1[],int number2[],int result[])

{

int i

int

temper[2 * MAX - 1]

for(i = number2[0]i >= 1

i--)

{

singleMulti(number1,number2[i],temper)

Add(result,temper)

}

}

void singleMulti(int number1[],int number2,int temper[])

{

int i,t =

0,c = 2 * MAX - 2

for(i = number1[0]i >= 1i--)

{

int

tempernumber = number2 * number1[i]

temper[c--] = (tempernumber + t) %

10

t = (int)((tempernumber + t) / 10)

}

if (t >

0)

{

temper[c] = t

temper[0] = 2 * MAX - 2 - c +

1

}

else

temper[0] = 2 * MAX -2 - c

}

void Add(int result[],int temper[])

{

static int pos = 2 * MAX -

2

int c = pos,t = 0

for(int i = 2 * MAX - 2i >2 * MAX - 2 -

temper[0]i--)

{

if (result[c] == -1)

result[c] = 0

int

tempernumber = result[c] + temper[i]

result[c--] = (tempernumber + t) %

10

t = (int)(tempernumber / 10)

}

if (t == 1)

result[c] =

1

pos--

}

void printresult(int result[])

{

for(int i = 1i <2 * MAX - 1

i++)

if (result[i] != -1)

printf("%d",result[i])

}

C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码。它既具有高级语言的特点,又具有汇编语言的特点。

C语言继续发展,在1982年,很多有识之士和美国国家标准协会为了使这个语言健康地发展下去,决定成立C标准委员会,建立C语言的标准。委员会由硬件厂商,编译器及其他软件工具生产商,软件设计师,顾问,学术界人士,C语言作者和应用程序员组成。

1989年,ANSI发布了第一个完整的C语言标准——ANSI X3.159—1989,简称“C89”,不过人们也习惯称其为“ANSI C”。

 C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。

C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。

C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。

常用的C语言IDE(集成开发环境)有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,Microsoft C,High C,Turbo C等等......