第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請幫幫我,到底是為什么,很不理解?問題在倒數(shù)第5行

請幫幫我,到底是為什么,很不理解?問題在倒數(shù)第5行

C
黑丶雨 2016-06-21 16:28:07
#include <stdio.h>int main(){????char a;?? ?float price = 5.0f;?? ?float number;?? ?A:?? ?printf("請輸入要購買的數(shù)量(30件以上打9折,50件以上打8.5折): ");?? ?scanf("%f",&number);?? ?printf("您一共要購買%.2f件,總價為:%.2f。\n",number,number*price*(number > 50 ? 0.85 : (number > 30 ? 0.9 : 1)));?? ?printf("需要再次購買嗎?(y 或 n)\n");?? ?scanf(" %c",&a);????????????? //%c前不加空格if就不執(zhí)行 ,為什么?。??? ?if(a=='y')?? ?goto A;?? ?return 0;}
查看完整描述

1 回答

已采納
?
onemoo

TA貢獻(xiàn)883條經(jīng)驗 獲得超454個贊

因為你輸入的內(nèi)容都是存入輸入緩沖區(qū)中的,而%c匹配會匹配任何一個字符(包括回車)。

你在前一個scanf("%f",&number)時,輸入結(jié)束后會打一個回車吧,但這個回車不會被scanf讀走,會留在緩沖區(qū)中。

再執(zhí)行scanf(" %c",&a); 時,由于是匹配字符,所以這個scanf會讀到上次剩下的那個'\n' ,并存入a中。

為了避免這個問題,就在匹配格式前加一個空格。 scanf會把格式化指示中的空格視為任意一個或多個空白符號(包括空格、回車、tab等),所以這樣就能“消耗掉”上次剩下的那個空格。 ?在連續(xù)調(diào)用scanf時,這是一種常見的解決辦法!

查看完整回答
1 反對 回復(fù) 2016-06-22
  • 1 回答
  • 1 關(guān)注
  • 1155 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號