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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

請(qǐng)大家?guī)臀铱纯催@個(gè)C程序?yàn)槭裁床荒艿诙芜M(jìn)入主循環(huán)?

請(qǐng)大家?guī)臀铱纯催@個(gè)C程序?yàn)槭裁床荒艿诙芜M(jìn)入主循環(huán)?

C
喬巴之無(wú)所不能 2017-10-22 10:50:56
/*?#include?directives?*/ #include?<stdio.h>? #include?<stdbool.h> /*?#define?directives?*/ #define?N?10 /*?declarations?of?exteral?variables?*/ /*?empty?exteral?variables?*/ /*?prototypes?*/ void?avg_sum(double?a[],?int?n,?double?*avg,?double?*sum); void?print(const?double?*avg,?const?double?*sum); /*************************************************** *?main:?calls?avg_sum,?print;??????????????????????* *??????????????????????????????????????????????????* ***************************************************/? int?main(void) { double?array[N],?avg,?sum; int?i; for(?;?;) { char?ch; printf("\n\n\tgo?to?main(y/n):"); scanf("%c",&ch); while(getchar()?!=?'\n') /*?empty?loop?body*/; if(ch?==?'y'?||ch?==?'Y') { printf("\n\n\tEnter?%d?of?double?number:?",N); for(i?=?0;?i?<?N;?i++) scanf("%lf",&array[i]); avg_sum(array,?N,?&avg,?&sum); print(&avg,?&sum); } else break; } return?0; } /*************************************************** *?functions:?avg_sum,?print????????????????????????* *??????????????????????????????????????????????????* ***************************************************/ void?avg_sum(double?a[],?int?n,?double?*avg,?double?*sum) { int?i; *sum?=?0; for(i?=?0;?i?<?n;?i++) *sum?+=?a[i]; *avg?=?*sum?/?n; return; } void?print(const?double?*avg,?const?double?*sum) { printf("\n\n\tavg?=?%g",*avg); printf("\n\n\tsum?=?%g",*sum); return; } /*************************************************** *???test?point?* ***************************************************/
查看完整描述

2 回答

已采納
?
onemoo

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

你上一次輸入的最后按了回車(chē)吧。這個(gè)換行符也留在輸入流中。

scanf 的格式化字符串中的 %c 會(huì)匹配輸入流中的任何一個(gè)字符,所以這次 scanf("%c",&ch) 會(huì)讀到 '\n' 并存入 ch 中。

scanf 的格式化字符串中的空格會(huì)匹配輸入流中的任何空白字符。所以在 %c 前加上空格,這個(gè)空格就會(huì)把之前留下的那個(gè)換行符匹配走(或者說(shuō)消耗掉了那個(gè)換行符)。后面的 %c 就能正常讀到你需要的字符了。

在連續(xù)使用 scanf("%c ... 時(shí)一定要注意這個(gè)問(wèn)題。


其實(shí) scanf("%lf"... 也是在兩次輸入之間,但它不會(huì)有這個(gè)問(wèn)題。這是因?yàn)槠渌母袷交甘痉ㄈ?lf)會(huì)忽略輸入流中的空白字符、直接去找后面有意義的字符。

查看完整回答
反對(duì) 回復(fù) 2017-10-22
?
喬巴之無(wú)所不能

TA貢獻(xiàn)4條經(jīng)驗(yàn) 獲得超1個(gè)贊

修改:

scanf("%c",&ch);
while(getchar()?!=?'\n')
/*?empty?loop?body*/;

變?yōu)椋?br />

scanf("?%c",&ch);
while(getchar()?!=?'\n')
/*?empty?loop?body*/;

在%c之前加了一個(gè)空格。程序就能正常運(yùn)行了。

但是這是為什么?

查看完整回答
反對(duì) 回復(fù) 2017-10-22
  • 2 回答
  • 0 關(guān)注
  • 1932 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號(hào)

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