Как написать в коде C? - PullRequest
       3

Как написать в коде C?

1 голос
/ 18 апреля 2011

Здесь у меня есть некоторый Perl-код:

sub clustering {
    ($brapa,$gee) = @_;
    $g=0;
    while ($g<$brapa) {
        if (($Y1XY[$g]-$Y2XY[$g])<=0) { push(@Y1new,$g+$gee);}
        else { push(@Y2new,$g+$gee);}
        $g++;
    }
    $sizeY1new = $#Y1new+1;
    $sizeY2new = $#Y2new+1;
}

Проблема в том, что я пытаюсь написать это на C так:

int clustering (int brapa, int gee){
    int g;
    g=0;
    while (g<brapa) {
        if ((jarakY1-jarakY2)<=0) { /*stuck at here*/ }
        else { }
    }
    return 0;
}

Как я могу вызвать данные / результаты из jarakY1 и jarakY2? Тогда, как мне написать это отлично на C? Пожалуйста, помогите мне.

Ответы [ 2 ]

5 голосов
/ 18 апреля 2011

Perl имеет встроенные типы данных и функции, которые не предусмотрены в C. Это случай push. Вы должны будете написать свой собственный стек, список или массив переменной длины, обрабатывая себя в зависимости от того, как вы используете результат.

1 голос
/ 18 апреля 2011

Мой первый вопрос: почему вы конвертируете код Perl в C?

Существует множество библиотек C, предоставляющих что-то вроде массивов Perl, не пишите свои собственные.Одним из них является библиотека Gnome C (aka glib), которая имеет несколько типов массивов, которые вы можете выдвинуть на .

Другой вариант - написать ее с использованием C ++ и стандартной библиотеки шаблонов (также называемойSTL).У них есть тип списка с push_front .

Вы можете использовать массивы Perl из C , хотя это не самая простая вещь.

Наконец, вот вопрос об обучении C , на который есть несколько хороших ответов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...