急!求大神赐教,在线等

题目是说接受一个整型输入,如果不是整型就报错,直到正确为止:
我的程序:
#include
int main()
{
int n,j;
j=scanf("%d",&n);
do
{
scanf("%d",&n);
getchar();
printf("输入错误\n");
}while(j==0);
printf("%d",&n);
return 0;
}
毛病出在哪里?求大神赐教

c

3个回答

还是有一定复杂度,需要判断是否有负号,还有可能用户只输入负号。
代码如下,测试通过。

 #include<stdio.h>
#include<stdlib.h>      //included to use atoi()
#include<ctype.h>       //included to use isalpha()
#pragma warning( disable : 4996) 


int main(void)
{
    char number[10];//假设最长可以输入10位(基本也够用了)
    int flag = 0;
    do
    {
        printf("请输入合法整型数: \n");
        scanf("%s", number);


        if (number[0] == '-')//负号开头
        {
            int j = 1;
            while (number[j] != '\0' && j < 9)
            {

                if (!isdigit(number[j]))
                {
                    flag = 1;
                }
                j++;
            }
            if (j == 1)
            {
                flag = 1;// 如果用户只输入'-'这一个字符
            }
        }
        else//不是负号开头
        {
            int m = 0;
            while (number[m] != '\0' && m < 9)
            {

                if (!isdigit(number[m]))
                {
                    flag = 1;
                }
                m++;
            }
        }

        if (flag)
        {
            printf("不是合法的整型数\n");
            flag = 0;
            continue;
        }
        else
        {
            break;
        }
    } while (1);

    if (flag == 0)
    {
        printf("您输入的整型数为: %d\n", atoi(number));
    }

    return 0;
}

int n,j;
你定义的时候应该定义成字符,然后对输入的字符进行判断,是不是只有数字和负号(有负号的话,是不是以负号开头的)?是不是不是以0开头的?

这么判断,我觉得才是对的。

d007letian
007Detective 回复znevegiveup1:回复有点问题,没法换行
接近 3 年之前 回复
d007letian
007Detective 回复znevegiveup1: string s;
接近 3 年之前 回复
d007letian
007Detective 回复znevegiveup1: string s;
接近 3 年之前 回复
znevegiveup1
白袍侠客 怎么判断?求老师详解。
接近 3 年之前 回复
 char c[20];
 先判断一层,c里只有数字和负号(可以用ASCII码,0-9是48到57,-是45   也可以用‘1’,‘2’这样的形式)
 然后再判断c[0]!='0'并且当c[0]=='-'时,c[1] != '0'
 这样就差不多是整型数了。

d007letian
007Detective 回复znevegiveup1: 我现在主要是用java,所以手头没c语言的编译器,我写java语言你能看懂的话,那我就写吧。。。还有我不是啥老师,,,我也就刚毕业的学生
接近 3 年之前 回复
znevegiveup1
白袍侠客 老师还是很迷茫,能不能写一下代码加一下注释。
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

1
ireport编译出错!求大神
4
就是以下数字用数组库升序的话怎么排列~!SQL!!求大神
1
这个排序问题怎么弄啊 !!小白一枚!!求大神指点!!!!
0
急!!程序不能显示决策树,求大神赐教
0
Android SDK managerment 提示没有tools!求大神指教
1
求ideaIU开发工行银企互联的源码!!!求大神不吝赐教!
1
急急急!!求各问大神关于TWAIN驱动扫描仪的问题!!!
2
急急急! 求各位大神指点!!! eclipse启动maven工程卡住,求帮助!
3
急!求大神帮忙,为什么eclipse启动Tomcat 项目一直在编译不会停止
7
急急急!!!大神们帮帮忙!!!
1
在C语言写的cgi文件中system调用一个脚本执行失败,急急急!求大神搭救!!!!!!!
4
急!求大神解决一个小项目问题,如图。跪求!Java小白
1
小白遇见工作流,傻了 急!!!大神进!!!
1
微信的阅读数和点赞数 怎么抓! 求大神指点,在线等!!!!!!
1
未将对象引用设置到对象的实例该怎么解决啊!!!求大神!!!
9
js在输入框中输入一个出生年月,怎样判断是否满足十八岁!求大神支招。拜谢!!!
0
web开发-servlet页面怎样捕获错误信息!求大神指导!
5
急问!!求大神解答!!
3
急急急!!!求大神告知如何使用 Java 获取别人网页 Cookie
7
SpringBoot不能批量加载mapperLocations!急!在线等!求大神指点啊!