用C语言写一段代码,要求只接受整数输入,其他任何输入,都会提示用户,重新输入。
答案:4 悬赏:0 手机版
解决时间 2021-03-06 01:49
- 提问者网友:火车头
- 2021-03-05 20:15
用C语言写一段代码,要求只接受整数输入,其他任何输入,都会提示用户,重新输入。
最佳答案
- 五星知识达人网友:长青诗
- 2021-03-05 20:40
很简单,判断每个输入的字符的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);
}
#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);
}
全部回答
- 1楼网友:罪歌
- 2021-03-05 23:04
C++的
#include<iostream>
using namespace std;
int main()
{
int testInt;
while(!(cin>>testInt))
{
cin.clear();
while(cin.get()!='\n')
continue;
cout<<"不是整数,重新输入";
}
}
- 2楼网友:摆渡翁
- 2021-03-05 21:58
C语言没有检查类型的函数。你这个问题难度有点大。
简单地说包括区分整数、小数、字符型……而无符号整型又与各种有效、无效输入字符存在默认的相互转化(参考ASCII码表)。
如果非要求解的话,有以下的思路:
定义一个字符数组获得用户输入,从输入字符的第一位到最后一位循环进行检查:
1. 对第1位(下标为0)字符,如果它是‘+’或‘-’或ASCII码对应的十进制数在48~57范围(对应字符‘0’-‘9’)内,则继续,否则断定其不是整数;
2. 对第2位(下标为1)到最后一位字符,循环检查每一位,如果都在48~57范围内,则最后结论断定输入为整数。否则跳出循环,断定其为非法输入或小数。
尴尬的是你是以字符串方式获得输入的,但它本身就不是整数“123”与“123”显然是不一样的。
- 3楼网友:鸠书
- 2021-03-05 21:42
#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); } }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯