小弟刚学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
你是用数组保存输入的么?
是的话依次判断

小弟刚学C语言,碰到个问题。。编写一个程序:要求输入一个正整数,如果输...
这个容易,你可以将输入的数赋值给一个变量。比如:输入的是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("输入的是...

在c语言中如何保留小数,小弟刚开始学,请多见谅
用户输入时用int类型读取输入 然后可以使用(float)将int类型值进行强制类型转换(至于强制类型转换怎么运用我就不说具体的了,度娘有很多,只要记得这种方式只是暂时地将它的值进行截断或转换就好)然后将最后结果赋值给float格式的sum就好了

编写一个C程序,输入a,b,c三个值,输出其中最大者
亲 你这个C语言程序写的太乱了 一个排序算法直接调用就可以了!

用C语言编写程序,输入一个整数,输出它是奇数还是偶数.
1.对2取余为零为偶数,非零即为奇数 include <stdio.h>int main(){ int num; for (int i = 0; i < 2; i++) { printf("intput a number:"); scanf("%d", &num); if (num % 2 == 0) printf("It's Even.\\n"); else printf("It's Odd.\\...

C语言编程问题,求大神指教 编写程序,输入两个正整数m和n,求∑(i*i+...
楼上两位的代码可能有点小问题 s += m*m+1\/m;改成 s += m*m+1.0\/m;

小弟是c语言初学者,按照书上的输入,为什么老有错误,见问题补充 main...
第一个错误是说你printf函数没有定义,所以要在main()函数前加上#include<stdio.h> 第二个错误说你main函数没有返回值,所以要在最后加上一句return 0;

c语言的循环输入问题
%c"要求每次输入并接收一个字符,asdasd0输入的话就是正确的,而如果是 a s d 这样就会连你输入的回车也作为一次输入,这恐怕不是程序期望的。所以根本原因是scanf的书写格式。如果是要求输入一个整数,可以用 scanf("%d", &v);这个时候就既可以输入:1 2 3 4,也可以是 1 2 3 4 ...

c语言入门编程题 判断一个数是否为质数
main(){ int x,i=2,n;double k;printf("请输入一个正整数x:");scanf("%d",&x);k=sqrt(x);if(x==1)printf("该数不是质数.\\n");else { while(i<=(int)k){ n=x%i;if(n!=0)i+=1;else { printf("该数不是质数.\\n");exit(0);} } printf("该数为质数.\\n");} re...

c语言的基础问题菜鸟啊明天要教高手帮忙在线等啊~~
include <stdio.h> void main(){ int x,i;printf("please input a int number:");\/\/请输入一个数字:scanf("%d",x);\/\/输入数字 for (i=1,i<=9,i++){ printf("%d*%d=%d ",x,i,x*i);if(i mod 2 ==0)\/\/自动换行 printf("\/n");} } ...

小弟是C语言新手,有个问题,就是当程序运行时窗口的大小怎么调整?_百度...
窗口栏上右键,点击属性,如上图修改窗口大小,就可以了。(包括字体、颜色都可以在里面修改),祝你愉快!

相似回答