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

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里逗号换成空格就可以正常运行了,为什么啊,那个有影响吗,不就是输入方法不一样
求大神帮看看

  • 写回答

3条回答 默认 最新

  • threenewbee 2019-11-12 22:58
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 未来之门 2019-11-12 18:31
    关注

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

    评论
  • CSDN-Ada助手 CSDN-AI 官方账号 2022-10-11 19:58
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 51单片机的外部中断,按下按键后不能切换到另一个模式
  • ¥15 java连接sqlserver有问题
  • ¥15 yolov8 如何调cfg参数
  • ¥15 这个四人抢答器代码哪儿有问题?仿真程序怎么写?
  • ¥15 burpsuite密码爆破
  • ¥15 关于#ubuntu#的问题,如何解决?(相关搜索:移动硬盘)
  • ¥15 scikit安装之后import不了
  • ¥15 Ros2编译一个使用opencv的c++节点的时候,报了这个错误,请问怎么解决啊
  • ¥15 人脸识别相关算法 YOLO,AI等
  • ¥15 spark问题方便加V17675797079