chrysing 发表于 2017-9-17 16:07:44

c语言

#include <stdio.h>
void main()
{
        int t,a,b,i;
        for(i=1;i<=3;i++)
        {
                scanf("%d%d",&a,&b);
                if(a>b) t=a-b;
                else if(a==b) t=1;
                else t=b-a;
                printf("%d",t);

        }
}为什么输入-1 2 3 3 6 2<回车> 会输出314

ba21 发表于 2017-9-17 16:22:05

scanf("%d%d",&a,&b); 这用,格开一下。输的时候也要输入,    scanf("%d,%d",&a,&b);

scanf用完后,会有一个'\n'残留在键盘缓冲区
while(getchar()!='\n') //#清空键盘缓冲区数据
                                continue;



#include <stdio.h>
void main()
{
      int t,a,b,i;
      for(i=1;i<=3;i++)
      {
                       
            scanf("%d,%d",&a,&b);
            if(a>b) t=a-b;
            else if(a==b) t=1;
            else t=b-a;
            printf("%d\n",t);

                        while(getchar()!='\n') //#清空键盘缓冲区数据
                                continue;

      }
}

chrysing 发表于 2017-9-17 17:07:31

ba21 发表于 2017-9-17 16:22
scanf("%d%d",&a,&b); 这用,格开一下。输的时候也要输入,    scanf("%d,%d",&a,&b);

scanf用完后,会有 ...

不啊,题目就是这样的不关逗号的问题

桃花飞舞 发表于 2017-9-17 18:18:23

输出没问题啊

ba21 发表于 2017-9-17 18:19:39

本帖最后由 ba21 于 2017-9-17 18:21 编辑

chrysing 发表于 2017-9-17 17:07
不啊,题目就是这样的不关逗号的问题

{:10_247:}上的代码解决不了你的问题?那只好换做我请教 你了

crymin 发表于 2017-9-17 22:37:11

https://share.weiyun.com/bba8432be70f414982f5d85dea70d359
我的理解是程序会依次成对调用输入的值并返回结果,
-1和2返回3
3和3返回1
6和2返回4
所以结果就成了314

大学生 发表于 2017-9-17 22:56:06

确实有点奇怪哦
页: [1]
查看完整版本: c语言