C程序思路..如何实现,判断一个数的数据类型

来源:百度知道 编辑:UC知道 时间:2024/05/22 23:43:07
要求从终端读入一个数(到这儿就把我难住了,scanf语句该怎么写,该怎么定义数据类型),能帮我把这个解决了,我就有办法做后面的了,请教高手指点一下,说一下思路,谢谢

先作为字符串读入
再对字符串作分析

char str[32];
int i,j;
scanf("%s",&str); // 字符串在str[] 里
j = strlen(str); // 字符个数在j里

下面对字符串作分析,例如,只有正负号,数字就是整数,有小数点是浮点数。
其它 有 16 进制格式,8进制格式,浮点E格式 等,对j个字符分析。

还有一种不很精密细致的方法是 用 sscanf.分析 str.
...
int x; float y; double d;
scanf("%s",&str);
if (sscanf(str,"%d",&x) == 1) { // 整型};
if (sscanf(str,"%f",&y) == 1) { // float型};
if (sscanf(str,"%lf",&d) == 1) { // double型};....

如果是数据的(包括整形和实数),可以用float。

scanf("%d",&a);// &是取地址符 d代表整型 根据具体情况 f是float lf是double c是字符 s是字符串 a是存储终端读入的变量
就是这样的

类型是强制定义的,怎么能判断呢?
你说的判断估计是一种按题目的要求判断吧,那就应该输入字符串类型啦.
就像输入计算式一样,那里面的数字都是作为字符先输入再进行转换的.