2016-07-22 40 views
1
#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h> 
#define SIZE 19 

int main() 
{ 
    char name[SIZE]; 
    int x; 
    int i; 

    printf("Enter your name: "); 

    scanf("%s", &name); 

    for (i = 1; name[i] != '\0'; i++); 
     printf("Are you sure your name is: "); 

    for (x = i - 1; x >= 0; x--) 
     printf("%c", name[x]); 
} 

在線9爲什麼我們需要在For語句後有一個分號?如果沒有分號,程序將打印出「你確定你的名字是:你確定你的名字是:」。C - For循環語句後的分號

編輯:人們不喜歡重複的問題,所以我在這裏使它不同 - 你覺得是問題,爲什麼沒有工作???? [解決]

+0

都能跟得上。這是一個錯誤。 – evaitl

+0

不清楚你期望的是什麼。但是,在for之後不需要分號。通過刪除分號,您打印您的消息兩次,因爲NULL字符在您的數組的第三個元素(在您描述的情況下)。你想完成什麼? –

+2

這不是一個錯誤。它用於計算「i」中的字符串長度。 –

回答

3

for (i = 1; name[i] != '\0'; i++); 

是循環,直到name[i]是一個空終止。此時計數器i將具有串name,其在接下來的代碼行中使用的長度。 與代碼的唯一問題是下一行,這是在誤導認爲這是循環的一部分的壓痕。

+0

「的代碼唯一的問題是下一行縮進」 - 嗯,那我們沒有理由不使用strlen(事實),讓這整個事情很多更清晰... – nephtes

+0

@nephtes這當然。但我會留下它進行代碼審查。 –

+0

是啊,在循環之後打印語句不應該是這樣的......哈哈。感謝尤金! – flamed65