小弟刚学C语言,碰到个问题。。编写一个程序:要求输入一个正整数,如果输入不是正整数,则报错。

例如:输入123,显示输入正确。而输入:aa123,123k,3.14,-12等则显示输入错误,个人遇到的最大问题是程序怎么判断输入的是浮点数而显示出错信息。麻烦高手指点下哈~~

这个容易,你可以将输入的数赋值给一个变量。比如:
输入的是3.2,自己定义一个int型变量.具体如下:
假设n=3.2//假设n是你定义的用来储存键盘输入的数。
int a;
float b;
a=n;//此时a就等于n的整数部分,也就是3;
b=n-a;//b用来存储n的小数部分,b等于3.2-3;
if(b==0)printf("输入的是整数");
else printf("输入的是浮点数");
这应该能看明白吧。不明白的话Hi我。追问

大哥的程序我看了。可能是我没有描述得很清楚,不过在要求输入数据的时候,由于可以按照自己的意愿输入任何数据或字符,你这个情况只是针对已经确定输入浮点数才能正确判断。这个问题的关键是事先不知道会输入什么东东,反正只要输入的不是正整数,程序就提示输入的不是正整数。。。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-06
#include<stdio.h>
#include<string.h>
void main()
{
char ch[20],i=0;
printf("请输入:");
gets(ch);

for(;i<strlen(ch);i++)
if(ch[i]<'0' || ch[i]>'9')
break;
if(i<strlen(ch))
printf("输入错误\n");
}

这个是判断输入只能为数字,如果你是要得到一个整形,用atoi()转化一下就行了
第2个回答  2011-04-06
找到出错的蓝色字,双击,会看到指针,里面有英语提示。
第3个回答  2011-04-06
你是用数组保存输入的么?
是的话依次判断
相似回答