2015-06-01 86 views
0

我正在製作這個程序來比較字母。這個目標是製作hang子手遊戲。但我不能使字母比較工作比較字母(字母)c

#include<stdio.h> 
#include<conio.h> 
#include<string.h> 

int c=0,x; 
char a[50],b[50],n[50],j,h; 
char a1[50],b1[50],y; 
main() 
{ 
    printf("Player 1:enter a word\n"); 
    gets(n); 
    x=strlen(n); 
    printf("%d letters\n",x); 

    puts("now enter the word letter by letter"); 
    do 
    { 
     gets(a); 
     strcat(b,a); 
     c++; 

    } 
    while(c!=x); 
    printf("%s",b); 
    getch(); 
    system("cls"); 

    c=0; 

    puts("Player 2:try to guess the word letter by letter"); 
    do 
    { 
     gets(a1); 
     y=strcmp(a,a1); 
     printf("%d",y); 
     strcat(b1,a1); 
     c++; 
    } 
    while(c!=x); 

    printf("%s",b1); 


    getch(); 
    return 0; 

} 

即時通訊問題,特別是與播放器2部分。這不應該是整個比較字母程序;這只是比較字母與玩家1部分中的任何內容(但它不斷拋棄1和-1,不知道如何解決這個問題)。

我確定有更多的編程知識,我應該能夠解決這個問題,但我是一個初學者,幾乎要靠自己學習。任何提示都會非常有幫助:)

+1

請澄清你所說的「它不斷trowing 1和-1」的意思。哪部分代碼是你特別提到的?並澄清你的意思是「扔」,因爲這不是一個常見的C術語。 – kaylum

+0

對不起,如果我的條款不是正確的(自學):y = strcmp(a,a1); printf(「%d」,y); – Zugoldragon

+0

'while(c!= x)'可能是錯誤的,除非你想要一個無限循環。 – Keith

回答

1

在您的代碼中,a存儲Player1輸入的臨時值,因此如果Player1輸入「abide」,則在Plyaer1的循環後結果爲a = "e"。在Player2的循環中,你總是比較「e」和用戶的輸入。

的溶液可以用於比較的第一個字符,而不是使用strcmp

y = b[c] - a1[0];