Cmentosuu
2019-11-12 17:38
采纳率: 100%
浏览 414

c语言编程 输入两个加数并计算结果,正确输出对,错误输出错,直道算对为止?

#include
int Add(int a,int b)
{
int answer;
printf("%d+%d=",a,b);
scanf("%d",&answer);
if(a+b==answer)
return 1;
else
return 0;
}
void Print(int flag)
{
if(flag)
printf("Right\n");
else
printf ("Not correct Try again\n");
}
int main()
{
int a,b, answer;
printf ("Input a,b:");
scanf ("%d,%d",&a,&b);图片说明

do{
answer=Add(a,b);
Print(answer);
}while(answer==0);
}

为什么一运行就这样啊,有什么问题吗,当我把最后那个scanf里逗号换成空格就可以正常运行了,为什么啊,那个有影响吗,不就是输入方法不一样
求大神帮看看

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • threenewbee 2019-11-12 22:58
    已采纳

    和你的输入有关系,你如果scanf中间是逗号,你输入也要逗号,反之如果scanf是空格,你输入也得是空格。而且逗号分为全角半角两种。必须一致。

    已采纳该答案
    打赏 评论
  • 未来之门 2019-11-12 18:31

    scanf 中双引号内除了“输入控制符”之外不要加任何“非输入控制符”。通过键盘给多个变量赋值与给一个变量赋值其实是一样的。比如给两个变量赋值就写两个 %d,然后“输入参数”中对应写上两个“取地址变量”;给三个变量赋值就写三个 %d,然后“输入参数”中对应写上三个“取地址变量”……
    但是需要注意的是,虽然 scanf 中没有加任何“非输入控制符”,但是从键盘输入数据时,给多个变量赋的值之间一定要用空格、回车或者 Tab 键隔开,用以区分是给不同变量赋的值。而且空格、回车或 Tab 键的数量不限,只要有就行。一般都使用一个空格。
    此外强调一点:当用 scanf 从键盘给多个变量赋值时,scanf 中双引号内多个“输入控制符”之间千万不要加逗号。

    打赏 评论

相关推荐 更多相似问题