我用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();} |