2015-05-17 2 views
-1

Я написал функцию GCD, которую я знаю, работает правильно. Однако, когда я пытаюсь принять его аргументы командной строки, он не работает. Что происходит?Чтение в целых числах

Код:

#include<stdio.h> 

int euclid(int m, int n) 
{ 
    int r = m % n; 

    if (r == 0) 
     return n; 

    return euclid(n, r); 
} 

void main(int argc, char *argv[]) 
{ 
    printf("%d\n", euclid(atoi(argv[0]), atoi(argv[1]))); 
} 

ответ

4
printf("%d\n", euclid(atoi(argv[0]), atoi(argv[1]))); 

argv[0] является само имя исполняемого. Вы должны использовать argv[1] и argv[2].

+1

и добавить еще один% d – amdixon

+0

О, спасибо. И почему я должен добавить еще один% d? –

+1

Нет, вам не нужно, так как вы печатаете только один аргумент – timrau