2011-04-18 61 views
1

在这里我有一些Perl代码:如何用C代码编写?

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

答案是:学习C.关于这个主题和网上的教程有很多好书。 – 2011-04-18 06:38:08

+1

什么是'jarakY1'和'jarakY2'? – 2011-04-18 06:40:36

+1

你的C代码在变量作用域方面是不相等的。在Perl代码中使用'my'! – Benoit 2011-04-18 06:40:40

回答

5

Perl内置了C中没有提供的数据类型和函数。推送就是这种情况。根据您使用结果的方式,您必须编写自己的堆栈,列表或可变长度数组。

+0

所以,我需要知道如何编写我自己的堆栈,列表或可变长度数组。你能教我如何写它,或者你可以建议一些其他的链接,我学习。请。 – 2011-04-18 06:48:24

+3

@mohd我相信你可以找人来教你一笔费用!否则,你可能会更好的一本书。为什么是C? – 2011-04-18 06:51:40

+2

@Mohd Isa,是的,我可以,但它已经超出了我准备在Stack Overflow这样的网站上做的事情。我不想花一次所需的时间,我不认为SO格式适合这项任务。 – AProgrammer 2011-04-18 06:55:39

1

我的第一个问题是:为什么要将Perl代码转换为C?

有很多C库提供类似Perl数组的东西,不要自己写。一个是Gnome C Library(aka glib),它有several Array types that you can push to

另一种选择是使用C++和标准模板库(也称为STL)编写它。他们有a list type with push_front。您可以使用Perl arrays from C,但这不是最简单的事情。

最后,这里有a question about learning C这有一些很好的答案。