Visual Studio 2010写C语言scanf输入多项值就会出错!输完第一个回车便报错。
编写一个程序,输入第一个值后还要输入第二个值或者第三个值但第一个值输完回车后就会报错,无法输入第二个值,提示错误!我照着教程练习了40个例子左右,但凡是遇到scanf多项...
编写一个程序,输入第一个值后还要输入第二个值或者第三个值
但第一个值输完回车后就会报错,无法输入第二个值,提示错误!
我照着教程练习了40个例子左右,但凡是遇到scanf多项输入都会这样,不知道是什么原因,求大神回答!代码基本确认无错。需要的话可以贴出来 展开
但第一个值输完回车后就会报错,无法输入第二个值,提示错误!
我照着教程练习了40个例子左右,但凡是遇到scanf多项输入都会这样,不知道是什么原因,求大神回答!代码基本确认无错。需要的话可以贴出来 展开
展开全部
问题的关键是scanf函数的运行机制:
当连续进行数值与字符的输入时,一旦输入的不是数字或小数点,系统就将它解释为字符,赋给了后面的字符变量。
程序中你用scanf( "%f ",&num);(尽管有printf一名,但没有作用)后面跟着又scanf( "%c ",&people);时,系统将你的输入num后的回车(或空格)赋给了people。因此程序不能正确执行。
当你用%s输入时,系统是将空格或回车解释为前一项结束,后一项开始,因此可以正确执行程序。
要解决这个问题,你可将字符的输入换成:
people=getche();
lab=getche();
应能解决。
当连续进行数值与字符的输入时,一旦输入的不是数字或小数点,系统就将它解释为字符,赋给了后面的字符变量。
程序中你用scanf( "%f ",&num);(尽管有printf一名,但没有作用)后面跟着又scanf( "%c ",&people);时,系统将你的输入num后的回车(或空格)赋给了people。因此程序不能正确执行。
当你用%s输入时,系统是将空格或回车解释为前一项结束,后一项开始,因此可以正确执行程序。
要解决这个问题,你可将字符的输入换成:
people=getche();
lab=getche();
应能解决。
展开全部
检查你的scanf语句的参数是变量的地址还是变量吧
例如
int a;
scanf("%d", a); // 需要写成scanf("%d", &a);
这个问题很容易被忽视
希望我的判断是正确的并且可以帮助你解决问题
例如
int a;
scanf("%d", a); // 需要写成scanf("%d", &a);
这个问题很容易被忽视
希望我的判断是正确的并且可以帮助你解决问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
贴!scanf语句
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码要看一下啊,否则找错挺难的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |