文档介绍:《数据结构》
课程设计实验报告
指导老师:汤亚玲
专业: 计算机科学与技术
姓名: 李瑞贤
学号:
设计时间: 2015/06
实验一、大数相乘
(1),用一个整型数组表示一个大数 , 数组的每个元素储存大数的一位数字 , 则
实际的大数 d 表示为 : d=a[k]*10 的 k-1 次幂 +a[k-1]*10 的 k-2 次幂
+......+a[2]*10+a[1] 其中 a[0] 保存该大数的位数.
(2)实现两个大数相乘.
(3)再此基础上实现两个大数相除
/*
本程序假设所输入的大数均在 20 位以内,并且输入数字时候假定不出现非法情
况(例如不存在这样情况 123a78ty 等)
这里只完成了大数的乘法运算
*/
#include ""
#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()
{ //largenumber1[] 和 largenumber2[] 表示要相乘的大数, mResult[] 表示结果
存放的数组,显然其位数不会超过 2 * (MAX - 1)
int largenumber1[MAX],largenumber2[MAX],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);
p