我一直在嘗試解決 CS50 語言 C 中的問題集 1。我已經到了這一點,但我被困在這里。我希望我的代碼在 while(n>=9 || n<=0) 時請求新輸入,但它在那里結束,而不是請求新輸入。我已經嘗試過 return n; 但它根本沒有用。您可以看到控制臺和結果。
當我要求我的代碼回傳 0 時;我以為它會要求新的輸入。但正如它所看到的,它結束了。我想要的是要求新的輸入,而不是停止作業。
這是我第一次在這里發帖,所以我希望我已經足夠好地描述了我的問題。
#include <stdio.h>
#include <cs50.h>
int main(void)
{
int n = get_int("Number: ");
while(n>=9 || n<=0)
{
return 0;
}
int i;
for(i=0;i<n;i )
{
int a;
for(a=n-1;a>i;a--)
{
printf(" ");
}
int y;
for(y=0;y<=i;y )
{
printf("#");
}
printf("\n");
}
}
uj5u.com熱心網友回復:
正如其他人所建議的那樣,return 0是一個終止您所在的當前函式并回傳所述值的操作。我不知道你對 C 的了解程度如何,我會盡量在這里少放一些資訊。只要知道如果你在你的main(){}塊中寫 return ,程式將忽略以下所有代碼并在執行 return 時結束程式。
現在關于如何獲得您想要的結果
我希望我的代碼在 while(n>=9 || n<=0) 時請求新輸入
看來您只需要將陳述句放在 while 回圈中:
int n=0;
while (n>=9 || n<=0)
{
n = get_int("Number: ");
}
在這種情況下,您需要int n在回圈之外宣告,因為稍后您將使用它。(我把它初始化為0讓程式進入回圈)。
如果您已經學習并能夠使用“do while”回圈,那么它可能是您最好的選擇。如果您的程式需要詢問輸入,并一直詢問直到輸入不再在(n >= 9 || n <= 0)您可能想要嘗試的范圍內
int n=0;
do
{
n = get_int("Number: ");
} while (n>=9 || n<=0)
這肯定會執行一次代碼塊,然后檢查是否滿足 while 條件并再次回圈。結果是您讓陳述句執行一次,然后直到不再滿足條件。
uj5u.com熱心網友回復:
將您的代碼放在 while 回圈中以隨時詢問它,(n >= 9 || n <= 0)因為現在只要 n 大于或等于 9 或小于或等于 0,您的程式將結束,因為return 0結束實際函式,在您的情況下它是main()函式
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/532805.html
標籤:Cwhile循环
上一篇:在C中的遞回函式中回傳
