PDA

View Full Version : مشکل این کد کجاست ؟ جست و جو



PHPOnline
سه شنبه 23 مهر 1392, 11:46 صبح
مرتب سازی حبابی نوشتم ولی اجرا نمی شه ، و خطای زیر رو هم می ده :

Notice: Undefined offset: 7 in C:\xampp\htdocs\tarahi\hobabi.php on line 11
Notice: Undefined offset: 7 in C:\xampp\htdocs\tarahi\hobabi.php on line 15
.....

این هم کد برنامه :




<?php

$myarray = array('5','1','9','3','7','4','6');
$n = 66;
for( $i = 0 ; $i < $n ; $i++ )
{
$c = 0;
for( $j = 0 ; $j < $n-1 ; $j++ )
{

if( $myarray[ $j ] > $myarray[ $j + 1 ] )
{

$t = $myarray[ $j ];
$myarray[ $j ] = $myarray[ $j + 1 ];
$myarray[ $j + 1 ] = $t;
$C++‎‎;

}

}

for ($s = 0; $s < 8; $s++) {
echo $myarray[$s];
}

if( $c == 0 )
{
break;
}

}


?>




مشکل کجا هست ؟ ممنون می شم راهنمایی کنید . :قلب:

SlowCode
سه شنبه 23 مهر 1392, 12:32 عصر
سلام
شما حلقه اول رو نوشتی ولی اصلا ازش استفاده نکردی! و فقط تعداد گام الگوریتم رو افزایش دادی.
اون خطا هم به این مربوط میشه که شما اومدی به n مقدار 66 دادی، و تو حلقه دوم j رو تا n-1 مقدار دهی کردی! ولی طول آرایه شما 7 تا هست، پس خطا میده.
این کد رو ببین:


$myarray = array('5','1','9','3','7','4','6');
$n = count($myarray);
for( $i = 0 ; $i < $n ; $i++ )
{
for($j=0 ; $j < $i ; $j++)
{
if($myarray[$i] < $myarray[$j])
{
$temp = $myarray[$i];
$myarray[$i] = $myarray[$j];
$myarray[$j] = $temp;
}
}
}

print_r($myarray);