亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

如下代碼,求助關于c的goto與輸入的問題

如下代碼,求助關于c的goto與輸入的問題

C PHP
侃侃無極 2022-03-24 15:15:47
#include<stdio.h>int main(){char t;int a,b,c;printf("Please enter s:\n");r1: t=getchar();if (t=='s'){printf("Please enter a,b,c:\n");scanf("%d%d%d",&a,&b,&c);printf("a=%f,b=%d,c=%d",&a,&b,&c);}else{printf("Please enter s:\n");goto r1;}return 0;}當輸入不是s的時候,程序會出現兩個Please enter s:我只想要一個。如果goto前面那一句刪去就沒有了。懇請各位大俠幫助,小弟在此有禮了。執行結果是這樣的:Please Enter s:fPlease Enter s:Please Enter s:我想要的結果是:Please Enter s:fPlease Enter s:研究數日,終于找到了解決辦法將getchar一句改為scanf("%s",t)就可以了分析原因應該是那個回車的問題。再次感謝幫助我的大俠們
查看完整描述

3 回答

?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

第一次getchar()讀走了你輸入的字符,第二次讀走了你第一次輸入的回車,因為第一次你輸入的回車留在緩沖區沒有被讀走,所以應該這樣讀走回車。
#include<stdio.h>
int main()
{
char t;
int a,b,c;
printf("Please enter s:\n");
r1: t=getchar();
getchar(); /*讀走回車*/
if (t=='s')
{

printf("Please enter a,b,c:\n");
scanf("%d%d%d",&a,&b,&c);
printf("a=%f,b=%d,c=%d",&a,&b,&c);
}
else
{
printf("Please enter s:\n");
goto r1;
}
return 0;
}

 


查看完整回答
反對 回復 2022-03-28
?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

#include<stdio.h>
int main()
{
char t;
int a,b,c;
r1: printf("Please enter s:\n");
t=getchar();
if (t=='s')
{
printf("Please enter a,b,c:\n");
scanf("%d%d%d",&a,&b,&c);
printf("a=%f,b=%d,c=%d",&a,&b,&c);
}
else
{
goto r1;
}
return 0;
}



查看完整回答
反對 回復 2022-03-28
?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

你應該是想要這個當輸入S時打印
:Please enter a,b,c:

輸入1 個數字時輸出一行,2個數字時輸出二行,3個......
按你輸入的字長打出相應的行數。

===================================================
#include<stdio.h>
int main()
{
char t;
int a,b,c;
printf("Please enter s:\n");
r1: t=getchar();
if (t=='s')
{
printf("Please enter a,b,c:\n");
scanf("%d%d%d",&a,&b,&c);
printf("a=%f,b=%d,c=%d",&a,&b,&c);
}else
{
if (t!=10){ printf("Please enter s:\n"); }
goto r1;
}
return 0;
}


 


查看完整回答
反對 回復 2022-03-28
  • 3 回答
  • 0 關注
  • 171 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號