2016-12-17 8 views
0

Я получаю странные ошибки при написании моей программы на C.Оператор == не работает в C

Вот мой код:

#include <stdio.h> 
#include <stdlib.h> 
#include "defs.h" 
int main (int argc, char* argv[]) 
{ 
int boardSize = atoi(argv[2]); 

int generations = atoi(argv[4]); 

int gamesort = atoi(argv[1]); 
printf("2 is %d 1 is %d 4 is %d name of file is %s \n",boardSize,gamesort,generations,argv[3]); 

    if (1==1) 
    { 
    printf("yes"); 
     ZeroPlayersGame(boardSize, generations,argv[3]); 
    } 
    else//(gamesort==2) 
    { 
     TwoPlayersGame(boardSize, generations,argv[3]); 
    } 
    return 0; 
} 

И вот им ошибка при получении от Терминал:

[email protected]:~/Desktop$ make 

gcc -c main.c defs.c gameIO.c zeroPlayer.c twoPlayer.c 

gcc gameIO.o defs.o zeroPlayer.o main.o twoPlayer.o -o prog 

[email protected]:~/Desktop$ ./prog 1 2 "l.txt" 3 

2 is 2 1 is 1 4 is 3 name of file is l.txt 

Segmentation fault (core dumped) 

Очень странно, как вы можете видеть мою программу dosen't войти в мой первый «если», , но вы можете видеть, что выводит строку перед если даного.

благодарит за любую помощь!

+3

Откуда вы знаете? вы не флеш. –

+0

есть printf внутри моего, если этот доцент получает печать. –

+7

Чтобы убедиться, что вывод сбрасывается с терминала, попробуйте добавить новую строку: 'printf (« yes \ n »);'. Вы получаете сообщение об ошибке в вызове 'ZeroPlayersGame()' –

ответ

2

Я думаю, что ваша проблема не связана с вашим вопросом «Оператор == не работает в C». Как видно из вашего вывода, printf работает хорошо, и может возникнуть проблема с функциями «ZeroPlayersGame» и «TwoPlayersGame». Если вы предоставили нам больше информации об этих двух функциях, решение проблемы было бы проще. Кроме того, использование «1 == 1» в логическом выражении настолько странно. Почему бы вам не устранить его и написать свое заявление сразу после инструкции printf. Потому что «1 == 1» всегда истинно.

+0

спасибо, как я писал раньше, в настоящее время выработано. –