这里我有一些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中完美地编写它?请帮帮我。
答案 0 :(得分:5)
Perl内置了C中未提供的数据类型和功能。推送是这种情况。根据您使用结果的方式,您必须自己编写自己的堆栈,列表或可变长度数组处理。
答案 1 :(得分: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有一些很好的答案。