C语言大整数相乘

[复制链接]
查看11 | 回复0 | 2007-4-1 21:26:19 | 显示全部楼层 |阅读模式
我用C语言写了一个,在VC2005下测试通过。#include #include typedef unsigned char CHAR;typedef unsigned int UINT;/*十进制形式的a与b,注意低位在前高位在后*/CHAR a[10000];/*被乘数*/CHAR c[20000];/*乘积和乘数*/UINT temp1,temp2;/*用来存放中间结果*/UINT da, db; /*记录a和b的位数*//*清零*/void Zero( CHAR* x, UINT n ){ UINT i; for ( i = 0; i9 ) {
ca = 1;
temp2 -= 10; } else {
ca = 0; } c[i+10000] = temp2;}
c[da+10000] += cm + ca; } else {/*如果被乘数本位是0就直接返回*/return; }}/*这个函数用来输出*/void OutputResult(){ CHAR* p = c + 20000; while( *p == 0 ) {p --; } printf("乘积是:\n"); while( *p != 'x' ) {printf("%d", *p);p --; }}void main(){ Zero( a, 10000 ); Zero( c, 10000 ); printf("输入被乘数:"); scanf("%s",a); printf("输入乘数:"); scanf("%s",c); /*记录位数*/ da = strlen( (const char*)a ); db = strlen( (const char*)c ); /*反转以使低位在前*/ strrev( (char*)a ); strrev( (char*)c ); UINT i; /*a与b存储的是char字符,减去0x30就能直接当数字使用了*/ for ( i = 0; i void main(){ float a; scanf("%f",&a); if ( a - (int)a == 0 ) {printf("是整数\n"); } else {printf("不是整数\n"); } getchar(); getchar();}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行