永发信息网

用C语言写一段代码,要求只接受整数输入,其他任何输入,都会提示用户,重新输入。

答案:4  悬赏:0  手机版
解决时间 2021-03-06 01:49
用C语言写一段代码,要求只接受整数输入,其他任何输入,都会提示用户,重新输入。
最佳答案
很简单,判断每个输入的字符的ASCI码就行了
#include"stdio.h"
#include"string.h"
#include"conio.h"

void main()
{
char str[100],chr;
int i=0;
VS: memset(str,0,100);
while((str[i]=getch())!=13)
{
putchar(str[i]);
if((str[i]<48)||(str[i]>57))
{
printf("请重新输入,要求必须是数字!\n");
i=0;
goto VS;
}
else
i++;
}
str[i]='\n';
printf("\n%s",str);
}
全部回答
C++的 #include<iostream> using namespace std; int main() { int testInt; while(!(cin>>testInt)) { cin.clear(); while(cin.get()!='\n') continue; cout<<"不是整数,重新输入"; } }
C语言没有检查类型的函数。你这个问题难度有点大。 简单地说包括区分整数、小数、字符型……而无符号整型又与各种有效、无效输入字符存在默认的相互转化(参考ASCII码表)。 如果非要求解的话,有以下的思路: 定义一个字符数组获得用户输入,从输入字符的第一位到最后一位循环进行检查: 1. 对第1位(下标为0)字符,如果它是‘+’或‘-’或ASCII码对应的十进制数在48~57范围(对应字符‘0’-‘9’)内,则继续,否则断定其不是整数; 2. 对第2位(下标为1)到最后一位字符,循环检查每一位,如果都在48~57范围内,则最后结论断定输入为整数。否则跳出循环,断定其为非法输入或小数。 尴尬的是你是以字符串方式获得输入的,但它本身就不是整数“123”与“123”显然是不一样的。

#include <stdio.h>

void main() {  float x = 0, y = 0;  scanf("%f, %f", &x, &y);  if (x - (int)x > 0 || y - (int)y > 0) {   printf("不是整数\n");  }  else {   printf("%d, %d", (int)x, (int)y);  } }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
梦娜世家在哪里啊,我有事要去这个地方
梦见生病的人
如何恢复ghost误覆盖的分区
如何将QQ群里的成员分成2组
我想听听大众女孩心目中声音最好听最迷人的男
福庆板材铜仁总代理地址在哪,我要去那里办事
主调节血量的是A.心B.肺C.脾D.肝E.肾
全民k歌晋级lv2要唱多少首歌
猪能活多久?
我欠货款被起诉但我坐了十五天牢,出来后没人
收集妻子的叫法
m4a1死神生化模式提升弹跳力
孕酮素低怎么办
巴蜀演义我想知道这个在什么地方
人在生物系统中的作用是BA. 生产者B. 消费者C
推荐资讯
隆胸假体取出后胸部上方凹陷多久可以恢复
垱上在什么地方啊,我要过去处理事情
跪求忧凉盛夏的诚实txt完整版下载链接,谁有
从长沙到广东中山的坐火车怎么走啊?
CF永久京剧帽子怎么获得 京剧帽子领取地址在
宝马5系清洗液过低如何解除警报
一根网线,两台电脑,怎么样同时玩DNF
QQ浏览器无法登陆个人中心,无法打开QQ空间
内江一日游适合去哪
突然变胖了很多是什么原因
毫不厌倦的意思是什么?
2009年全国孜然产量是多少呢?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?