2010-11-23 48 views
0

大家下午好, 我在努力完成一項我認爲應該可行的任務。然而,我的嘗試似乎每次都失敗。我的努力是學習在Objective-C中編寫代碼並取得良好進展。我想要做的是在當前應用程序中添加一個循環,最後詢問是否要再次運行或執行某些操作,並回答是或否。如果沒有程序結束,並且如果是的話,它會跳回到項目的頂部,從頭開始。有點像我的下面?請原諒我,如果它不完美,我仍然習慣於編程,並發現它非常有趣。循環提示是或否?

#include <stdio.h> 
int main(void) 
{ 
    char loop = yes; 

    while (loop = yes) 
{ 
    . 
    . 
    . 
} 
    printf ("would you like to continue (yes/no)/n"); 
    scanf ("%s", loop); 
} 
+0

爲什麼這個有'客觀C`的標籤?它看起來像C代碼。 – 2010-11-23 21:02:35

回答

1

printf和scanf需要在while循環的大括號內移動。另外,您希望\ n而不是/ printf中的n。最後,你將得到一個帶有scanf()調用的字符串,所以你需要將循環聲明爲char數組,然後在while循環中檢查該數組的第一個元素是否爲'y'或'n'或類似的東西。你可能也想看看getchar()而不是scanf()。

1

這裏沒有編制,但應該工作:

#include <stdio.h> 
int main(void) 
{ 
    char buffer[256]; 

do { 
    . 
    . 
    . 
    printf ("would you like to continue (yes/no)/n"); 
    scanf ("%s", buffer); 
} while (strcmp(buffer,"yes") != 0); 

} 

一個不會做這樣的事情在現實世界中的應用,但對於演示目的,它應該沒問題。

我爲你的變量創建了一個數組,因爲字符串是C中的字符數組。長度設置爲256字節(255個字符+ 0字節作爲分隔符)。我改變了循環,儘量讓它至少運行一次。對於字符串比較,你需要調用一個函數。對於相同的字符串,strcmp返回0。最後,這個問題屬於,在這個循環中。

雖然沒有使用Objective-C,但它是純C語言。

-1
#include <stdio.h> 
int main(void) 
{ 
    avi; 
char loop[10]; 
while (loop = yes) 
{ 
. 
. 
. 
} 
    printf ("would you like to continue (yes/no)/n"); 
    scanf ("%s", loop); 
    if(strcpm(loop,"YES")==0) goto avi: 
} 
+0

一般來說,使用goto是不好的行爲,因爲它很難讓人閱讀。你能提出任何方法來解決這個問題嗎? – LeeNeverGup 2012-09-30 09:47:11

0
int main() { 

    char A = 'n'; 
    char B = 'y'; 
    char Answer; 


    printf("Does the subject have a glazed over look? (y/n): \n"); 
    scanf("%c",&Answer); 

    if (Answer=='N'||Answer=='y'|| Answer=='N'||Answer=='Y') 

     printf("Good\n"); 

    else 
       printf("Please enter 'y' or 'n' \n "); 


    return 0; 
}