3 回答

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;
}

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;
}

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;
}
- 3 回答
- 0 關注
- 171 瀏覽
添加回答
舉報