簡體   English   中英

為什么在使用scanf()和printf()時沒有執行else語句?

[英]Why is the else statement not being executed while using scanf() and printf()?

    int p;
    int j;
    printf("Who is Palpatine?\n");
    scanf("%s", &j);
    if (j = "Senate") 
        {
        printf("Your number sir?\n");
        scanf("%d", &p);
        printf("CT %d, the time has come. Execute Order Sixty-Six.\n", p);
        }
    else
        {
        printf("Incorrect\n");
        }
     return 0;


}

我一直在測試這些代碼行,如果我在提示符中寫了任何內容,它會通過我說Senate的部分,即使我沒有輸入Senate,也會跳過我的其他聲明。 執行代碼圖片中的示例是當我輸入Sen而不是Senate時。

在已執行的代碼圖片中划掉代碼的部分也沒有處理問題,而且我的間距很糟糕。

謝謝,所有的反饋表示贊賞。

執行代碼

代碼圖片

將j聲明為一個字符串來保存參數,然后在你的scanf()中,只執行“j”,而不是&j,因為它是一個字符串。 此外,如果j = =參議院,而不是j =參議院。 一個=是分配,但兩個是檢查相等。

希望這可以幫助!

編輯:使用strcmp(j,“參議院”)

如果您在代碼中注意到,則scanf語句錯誤。
這是你的scanf聲明:

scanf("%s", &j);

如果您注意到您在使用&j的語句中使用%s 在代碼的前面,你說j是一個整數。 因此,您應該使用%d 要修復代碼,請將j為字符串以存儲字母。 為此,請單擊此鏈接 ,它將帶您進入StackOverflow問題以創建字符串類型變量。

另外,在你的if語句改變: if (j = "Senate") to if (j = 'Senate') 如果使用""執行此操作,則會收到錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM