首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

求好手解答,PHP代码转成C++代码

2013-08-09 
求高手解答,PHP代码转成C++代码?php$file task1.txt$fp fopen($file, r)$content fread($fp,

求高手解答,PHP代码转成C++代码
<?php
$file = "task1.txt";

$fp = fopen($file, "r");
$content = fread($fp, filesize($file));
fclose($fp);

//parse $content
$tmp = explode("\n", $content);
$length1 = count($tmp);

$data = array();
$invalid = 0;
for($i=0, $j=0; $i<$length1; $i++)
        if(strlen($tmp[$i]) > 10)
        {
                $tt = explode(",", $tmp[$i]);
                if($tt[0] == -1) { $invalid ++; continue; }
                if($j < 1 || $tt[0] != $data[$j-1][0])                //filter repeated numbers
                {
                        $data[$j] = $tt;
                        $j++;
                }
        }

$length2 = count($data);

//make a int_array;
$int_array = array();
$ab_array = array("A"=>0, "B"=>0);
$A_array = array();                        //stat of max continuous repeated number
$B_array = array();

$flag = 1;
$A_repeated = 0;
$B_repeated = 0;

for($i=0; $i<$length2; $i++)
{
        $index = $data[$i][0];
        $int_array[$index-1] += 1;
        if($int_array[$index-1] %2 ==0)
        {
                if($flag)        { 
                        //end of repeated A


                        $A_array[$A_repeated] ++;
                        $A_repeated =0;
                        $flag = 0; 
                }
                        $ab_array['B']++; 
                        $B_repeated++;
        }else {
                if(!$flag)        { 
                        //end of repeated B
                        $B_array[$B_repeated] ++;
                        $B_repeated =0;
                        $flag = 1; 
                }
                        $ab_array['A']++; 
                        $A_repeated++;
        }        
}

                if($flag)        { 
                        //end of repeated A
                        $A_array[$A_repeated] ++;
                }else 


                { 
                        //end of repeated B
                        $B_array[$B_repeated] ++;
                }



$result = "";
for($i=0; $i<75; $i++)
        $result .= sprintf("%d, %.2f", $i+1, $int_array[$i]/$length2*100)."%<br>";

//echo $result;
echo "总计:". $length1. "<br />";
echo "无效:". $invalid. "<br />";
echo "重复: ". sprintf("%d", $length1 - $length2). "<br />";
echo "有效且不重复:". sprintf("%d", $length2). "<br />";

echo "--------------------<br /> A = 奇; B = 偶 <br /> <br />";


echo "A: ". sprintf("%d, %.2f", $ab_array['A'], $ab_array['A'] / ($ab_array['A'] + $ab_array['B'])*100). "%<br />";
echo "B: ". sprintf("%d, %.2f", $ab_array['B'], $ab_array['B'] / ($ab_array['A'] + $ab_array['B'])*100). "%<br />";

echo "--------------------<br />";
$total = 0;
$size = count($A_array);
foreach($A_array as $repeated => $max)
{
        echo "A[". $repeated ."] = ".sprintf("%d 次, %.2f", $max, 100*$repeated*$max/$ab_array['A'])."%<br>";
        $total +=$max*$repeated;
}

echo "--------------------<br />";
echo "**统计校验: ".$total."<br />";
echo "--------------------<br />";
$total = 0;
foreach($B_array as $repeated => $max)
{
        echo "B[". $repeated ."] = ".sprintf("%d 次, %.2f", $max, 100*$repeated*$max/$ab_array['B'])."%<br>";
        $total +=$max*$repeated;
}

echo "--------------------<br />";
echo "**统计校验: ".$total."<br />";


echo "--------------------<br />";
 

[解决办法]
俺懒得弄。
LZ如果熟悉PHP的话,那些函数用C写出来或者代换下就OK了。

话说PHP的函数真丰富····

热点排行