C语言小白求问,什么样的数据类型可以录入 输入的那个长长的小数

如题所述

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;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-30
试试double类型,去试验下,不同系统不太一样。
第2个回答  2014-11-30
字符串 string
第3个回答  2014-11-30
字符串char就可以啊追问

问题是还要计算那TT

追答

用高精度啊