[英]The code “should” work, but the program stops working
我是一個有幾個小時經驗的初學者,我正在嘗試制作一個非常簡單的程序來熟悉IF命令。 我想出了以下代碼:
#include<stdio.h>
int main()
{
char ans;
char n;
char y;
printf("Do you want to exit?\n");
scanf("%c\n",ans);
if (ans == y)
{
printf("As you wish!\n");
return 0;
}
else (ans == n);
{
printf("You'll exit anyways!\n");
return 0;
}
}
我認為應該可以,但是在輸入內容后,程序將停止工作! 提前致謝!
的
if (ans == y)
應該讀
if (ans == 'y')
前者將ans
與未初始化變量y
的值進行比較,而后者則檢查ans
是否包含字符'y'
。
'n'
。
y
和n
變量是不必要的,可以刪除。
此外,以下行是不正確的:
else (ans == n);
它應該讀
else if (ans == 'n')
(我添加了if
並刪除了分號。)
最后, scanf()
應該顯示為:
scanf("%c",&ans);
else (ans == n);
這不會產生預期的結果。 刪除;
和條件。 else
可能只需要一段代碼。 它不處理條件。 如果需要條件,請else if
以下情況下使用else if
:
else if (ans == 'n')
更多錯誤:
if (ans == y)
此處的y表示已聲明但沒有值的變量。 當然,您想引用字符'y'
:
if (ans == 'y')
此外, scanf
需要一個指針,所以不是ans
,使用&ans
。 它需要寫入該值的內存地址。 它不在乎價值。 您最終將了解指針。 (假設您在過去的幾個小時中沒有對它們進行檢查)
有三個主要錯誤。
您應該將指針傳遞給scanf
函數,因此必須在ans
( &ans
)之前添加一個&符號。
有一條尾隨;
在else
語句的末尾。
y
表示變量(不存在),而您想將ans
與字符 'y'
進行比較。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.