scanf("%d", k),
創(chuàng)新互聯(lián)建站是專業(yè)的信豐網(wǎng)站建設(shè)公司,信豐接單;提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行信豐網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
當(dāng)輸入字符的時候,輸入緩存內(nèi)沒有數(shù)字,scanf就讀取不成功,k仍然保留了原來的值,下次再次調(diào)用scanf時,由于輸入緩存中仍然還殘留上次輸入的字符,所以仍然讀取不成功,k仍然保留原來的值。用fflush(stdin)清空一下緩存就可以了。
void?showNumber(seat?*?seats)
{
int?k?=?0;
do{
int?count?=?0;
for?(int?i?=?0;?i??12;?i?++)?{
if?(seats[i].flag?==?0)?{
count?++;
}
}
printf("還有%d個空座位\n",count);
printf("\n刷新信息,請輸入1;返回主菜單輸入2\n");
fflush(stdin);????/*這里清空一下緩存*/
scanf("%d",k);
}
while?(k?!=?2);
}
請靜心,仔細(xì)閱讀:
int seat; //定義整型變量,變量名為seat
void printList(struct LNode* L);
// 聲明函數(shù),函數(shù)名printList,無返回值;函數(shù)有1個形參,為結(jié)構(gòu)指針,
void insertYouXu(struct LNode* L,struct LNode* Elem);
// 聲明函數(shù),函數(shù)名insertYouXu,無返回值;函數(shù)有2個形參,為結(jié)構(gòu)指針,
struct LNode *prior(struct LNode* L,struct LNode* p);
// 聲明函數(shù),函數(shù)名prior,返回值為結(jié)構(gòu)指針;函數(shù)有2個形參,為結(jié)構(gòu)指針,
void insertYouXu(struct LNode* L,struct LNode* Elem);
// 聲明函數(shù),函數(shù)名insertYouXu,無返回值;函數(shù)有2個形參,為結(jié)構(gòu)指針,
typedef struct LNode //自定義類型,typedef為關(guān)鍵字,struct LNode 為結(jié)構(gòu)類型,有4個成員項
{//用于通訊錄結(jié)點
int number; //成員項,為整型
double telenum; //成員項,為雙精度
char name [20]; //成員項,為一維字符數(shù)組
struct LNode *next; //成員項,類型為struct LNode ,遞歸結(jié)構(gòu)
}LNode,*LinKList; //定義類型,LNode為節(jié)點;*LinKList為指針
你的
代碼
不全,我只能給你分析一下這種情況常見的錯誤了。
1、要返回
數(shù)組
定義
在子
函數(shù)
中。在函數(shù)體內(nèi)部定義的數(shù)據(jù)
變量
,如果未加修飾符(static和extern),那么她是局部的,函數(shù)執(zhí)行完畢之后
內(nèi)存
釋放,造成你訪問
錯誤
。你
下邊
的那個例子定義的數(shù)組是
全局變量
,先不說了下班了晚上補充
這段代碼是表示要找的數(shù)存在arr中的位置,而數(shù)組的下標(biāo)是從0開始的,如果seat=0;那么要找的數(shù)的位置與數(shù)組下標(biāo)就不對應(yīng)了
你在執(zhí)行時為scanf("%d", n)函數(shù)輸入數(shù)據(jù)時肯定要有個回車,表示給n的數(shù)字輸入完畢,但scanf()這函數(shù)只接收數(shù)字,卻把'\n'留在了緩沖區(qū)。當(dāng)碰到gets()時它卻把這個'\n'接收了;剛好這又是回車符,它以為你把字符串已經(jīng)輸入完了……解決辦法是在gets(aplane[n - 1].name);前加一句getchar()把那個該死的'\n'收留了,但不賦給任何變量。這樣應(yīng)該無問題了……
供參考,希望有幫助……