首页 > 编程知识 正文

c语言程序设计书(c语言大数运算程序设计报告,C语言程序设计-大数运算.doc)

时间:2023-05-05 01:12:24 阅读:123246 作者:4118

c语言编程-最大数运算

#包含

#包含

#包含

#定义maxn 1010

将满足/*xx、XXXX、XXXX形式的字符串s转换为数字串并存储到数组shu中

*/

int get_shu char *s,int shu[] int index 0; char* point; sscanf s,' %d ',shu[index ]; 从//s中获取首先计数为num[]的for; //先将“,”找到后该位置的字符转换为“”空格,然后从此位置开始计数的点结构,“,”; 从//s中找到第一个“,并将该地址存在于point中的if point NULL break; //如果找不到,则“循环到结束*point '”; 找到//','后,单击' '空间sscanf point,' %d ',shu[index ]; //从空格后面将数字取得为num[]的int i,temp; //index将记录数组内的数量的个数数组反转,将高位在低位之前,for i 0; I索引/2; I temp墅[ I ]; 墅[ I ]墅[索引- I-1 ]; 墅[索引- I-1 ] temp; 返回索引; 返回索引值的数组的长度注意长度比下标大1 /*的函数适合相同编号的情况

*/

int add int *s1、int len1、int *s2、int len2、int*RESintlen1len2? len1: len2;//以2个个数串种的最长长度为基准,设定运算次数int index、delta 0; for index 0; 索引len; 索引//从低到高的运算RES [索引] S1 [索引] S2 [索引]增量; Keres [索引]/10000; res[index] % 10000; if delta RES [索引] delta; //最后如果有进位,则设为位数1,进位设为最高位的返回索引; //减去返回结果长度的/*的函数被应用于不同编号的情况

*/

int sub int *s1、int len1、int *s2、int *res、int *len0 int len、*up、*dn; //len的计算次数up为绝对值大的数dn为绝对值小的数while len1len2len1s1[ len1-1] S2 [ len2-1]//! 如果两个数字串的长度相同,高位相同,则长度len1--; len2--; //因为相同的高位相互抵消,但是这个循环至少在两个个数上留下一位的len len1 len2吗? len1: len2; //作为计算次数if len1取较长的长度! len2 //! 如果两个数字串的长度不同,up len1 len2? s1: s2; //! 长度的绝对值是否在很大程度上指定给up dn up s1? s2: s1; //! 的dn else //两数列长度相等时up s1[len1-1] s2[len2-1]? s1: s2; //最高位值较大的数量是up dn up s1? s2: s1; 索引,增量0; //从这里开始从下位向上计算for index 0; 索引len; 索引RES [索引] up [索引]-delta-dn [索引]; if res[index] 0 //借用res[index] 10000; 三角洲1; ELSE三角洲0; while index-- 1 res[index - 1] 0 //清除前导0,但至少保留一位索引- -; * len 0索引; //将长度代入主函数len0 return up s1,如果//s1的值大则返回真,否则返回假,用于由主函数判断结果的符号int main //分别与从最初数起的第2数和运算结果的数组长度正负的int shu1

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。