在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/C/ 多個scanf輸入后面的不起作用的問題?

多個scanf輸入后面的不起作用的問題?

include <stdio.h>

int main()
{

double a,b,c,d,e;
char op;
printf("\nEnter the first complex number:");
scanf("%lf%lf",&a,&b);
printf("\nEnter the second complex number:");
scanf("%lf%lf",&c,&d);
printf("Enter the operator:");
scanf("%c",&op);
printf("%c",op);

}

這個語句未能正常執(zhí)行,大家?guī)兔纯矗?/p>

回答
編輯回答
鹿惑

你把最后 printf 的 %c 改成 %d 就看出來問題所在了

2017年8月25日 09:02
編輯回答
默念

并不是自動賦一個值,我猜你%d得到的結(jié)果是10,因為10是“換行”的ASCII。
%c是逐位讀取的,不像%d %lf這樣會自己去找合法的數(shù)據(jù)(這樣說很不嚴(yán)謹(jǐn)?shù)梢岳斫猓?/p>

2017年12月1日 15:36
編輯回答
孤影

問題出在scanf("%c",&op);此行接收到的是鍵盤輸入d值后的enter鍵,所以直接跳過了輸入運(yùn)算符operator的步驟,換句話說此程序的運(yùn)算符為enter(即為'n')。

解決方法:
printf("Enter the operator:");下添加getchar();,即

printf("Enter the operator:");
getchar();
scanf("%c",&op);
printf("%c",op);

此函數(shù)的作用是“吃掉enter鍵”,獲取鍵盤輸入

希望對你有幫助^_^

2017年9月29日 10:17