標(biāo)題: 初學(xué)單片機C語言,為什么這結(jié)果?求兩數(shù)的差值,不想引入負(fù)值,就大的減小的,可是 [打印本頁]

作者: 大IGBT    時間: 2023-1-3 21:48
標(biāo)題: 初學(xué)單片機C語言,為什么這結(jié)果?求兩數(shù)的差值,不想引入負(fù)值,就大的減小的,可是


unsigned int        a,b,c;

        SCON = 0x50; //串口方式1,允許接收
        TMOD = 0x20; //定時器1定時方式2
        TCON = 0x40; //設(shè)定時器1開始計數(shù)
        TH1 = 0xE8;        //11.0592MHz 1200波特率
        TL1 = 0xE8;
        TI = 1;
        TR1 = 1; //啟動定時器
        

while(1)
        {
        scanf("%d%d",&a,&b);  
        if(a>b)
                {
                        c=a-b;
                }
    c=b-a;        
        printf("a=%d,b=%d,c=%d\n",a,b,c);
        }               
}

作者: Hephaestus    時間: 2023-1-4 02:39
你少寫了一個else
作者: xuyaqi    時間: 2023-1-4 06:45
if(a>b)
{
        c=a-b;
}
else
{
         c=b-a;
}
printf("a=%d,b=%d,c=%d\n",a,b,c);
作者: devcang    時間: 2023-1-4 07:30
while(1){
        scanf("%d%d",&a,&b);  
        if(a>b){
                c=a-b;
        }else
                c=b-a;        
        printf("a=%d,b=%d,c=%d\n",a,b,c);
}

作者: 樂魚居    時間: 2023-1-4 07:43
while(1)
        {
        scanf("%d%d",&a,&b);  
        c=b-a;  
        if(a>b)
                {
                        c=a-b;
                }      
        printf("a=%d,b=%d,c=%d\n",a,b,c);
        }               
}
作者: ijf    時間: 2023-1-4 08:02
最后你寫的 c=b-a,再輸出的。
作者: bigbigcong    時間: 2023-1-4 09:15
c=b-1;改成else
作者: tyrl800    時間: 2023-1-4 09:15
if語句沒掌握好,仔細(xì)看看
作者: xiaoshan7748    時間: 2023-1-4 09:38
C = b - a;這句前面加一個else就能得到你想要的結(jié)果了,不然你的程序每次都會執(zhí)行C = b - a;
作者: Longan.Wang    時間: 2023-1-4 09:58
掉了一個else
while(1)
{
        scanf("%d%d",&a,&b);  
        if(a>b)
        {
             c=a-b;
         }
         else
         {
              c=b-a;        
        }
        printf("a=%d,b=%d,c=%d\n",a,b,c);
}

作者: coody_sz    時間: 2023-1-4 11:08
少了else,所以后面那句必然執(zhí)行,就錯了。初學(xué)者要認(rèn)真看書,理解指令。
作者: 大IGBT    時間: 2023-1-4 22:40
感謝各位指點




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1