C语言中数值类型的数据都不够使!double float等
如果你是64位的编译系统,可以试一下long double
一般情况下,你只能用字符串来输入了!
追问字符串输入后怎么计算呐
追答采用大数运算方法,进行数据的加减乘除。
我给你个大数整数的加法运算代码吧,供你参考
#include<stdio.h>
#include<string.h>
#define MAX 256
void converse(char* s) //反转一个字符串
{
char temp;
int len=strlen(s),i;
for(i=0;i<len/2;i++)
{
temp=s[i];
s[i]=s[len-i-1];
s[len-i-1]=temp;
}
}
char* add(char *x,char *y)//加法
{
int lenx=strlen(x);
int leny=strlen(y);
int temp,tag,i;
static char res[MAX] ;
memset( res, 0, sizeof(res) );
tag=0 ;
for( i=0;;i++ )
{
temp = tag ;
lenx--;leny--;
if ( lenx < 0 && leny < 0 )
break ;
if ( lenx >= 0 )
temp += x[lenx]-'0' ;
if ( leny >= 0 )
temp += y[leny]-'0' ;
if ( temp > 9 )
{
temp -= 10 ;
tag=1;
}
else
tag = 0;
res[i]='0'+temp;
}
if ( tag )
res[i++]='1' ;
res[i]='\0' ;
converse(res);
return res;
}
int main()
{
char num1[101];
char num1[101];
scanf( "%s", num1 );
scanf( "%s", num2 );
printf("%s\n",add( num1,num2 ) );
return 0;
}