程式的目標是掃描一串X、1、2,取決于用戶如何把它們放在一起,然后顯示他放了多少個X。
由于某些原因,在我放了8個X/1/2之后(按了8次回車鍵,因為我是一個一個地放的 無論我如何輸入數字,它都會顯示數字15。
我的問題是,當for設定為i=1; i<=TOTOSIZE; i 時,為什么它在8次回車后就停止了?
TOTOSIZE = 15
為什么它一直顯示15這個數字,而不是它應該做的事。
#include <stdio.h>/span>
#define TOTOSIZE 15
int main()
{
int d = 0, i;
char score;
for (i = 1; i <= TOTOSIZE; i )
{
scanf_s("%c"/span>, &score)。
if (score == 'X') 。
{
d ;
}
_flushall()。
}
printf("%d"/span>, d)。
return 0;
uj5u.com熱心網友回復:
我可能沒有正確理解你的意思,但根據我的理解,你正在輸入15個不同的字符,每個字符都是1、2或X,并計算有多少個X被輸入。如果這是正確的,你的問題似乎是在if陳述句后面有一個分號。這段代碼可以作業 -
#include <stdio.h>
#define TOTOSIZE 15
int main()
{
int d = 0, i。
char score;
for (i = 1; i <= TOTOSIZE; i )
{
scanf_s("%c"/span>, &score)。
if (score == 'X'/span>)
{
d ;
}
_flushall()。
}
printf("%d"/span>, d)。
return 0;
uj5u.com熱心網友回復:
在你的代碼的以下部分有兩個專案可能會導致跳過的問題。 (另一個答案也解決了這個問題。)
for (i = 1; i <= TOTOSIZE; i )
{
//scanf_s("%c", &score);//使用scanf讀取這樣的字符可能會因為新行而跳過。
scanf_s(" %c", &score);//在格式指定中的前導空格將消耗空間,包括換行。
// ^
if (score == 'X'/span>);
{ // ^不應該出現在這里。 它使測驗的錯誤結果無效。
d ;
}
_flushall()。
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/332263.html
標籤:
