亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于代碼錯誤問題的糾正

這樣才是正確的!

<?php
???? $maxLine = 4; //每排人數
? $no = 17;//學生編號
???? $line = ceil($no/$maxLine);
? $row = $no%$maxline?$no%$maxLine:$no%4;
?


? echo "編號<b>".$no."</b>的座位在第<b>".$line."</b>排第<b>".$row."</b>個位置";
?>

正在回答

2 回答

源代碼沒錯。

首先我們理解一下rows的意思,rows指的是,你在第幾個座位。比如例子中,每一行可以坐4個人,這里rows可以是1,2,3,4。這里我們先不考慮在第幾行。

因為我注意到你跟源碼的差別主要是在這一句上邊

??$row?=?$no%$maxline?$no%$maxLine:$no%4;

那么我們就來聊聊這一句:這是一個三元運算,解讀一下意思是:

  1. 當$no%$maxline運算結果不為0,那么$row =?$no%$maxLine 也就是說,當座位號不可以被每排坐的人數整除,rows是座位號對每排人數的求余,即是說,你前邊所有排都填滿了,剩下你學號所在的這一排沒有坐滿,余出來的這些人坐最后一排,你這個學號在最后一排的第幾個位置。

  2. 當$no%$maxline運算結果為0(也就是說,$no可以被$maxline整除,意思是剛好你這個學號的位置可以使得你和前邊的人可以填滿每一排。)這個時候,原本教程里的結果是$row = $maxLine,注意,這個maxLine指的是每一排可以坐的人數,因為你是最后一個人呀,所以你在本排的位置,確實是maxLine沒有錯,在這里也就是第四個位置。

  3. 接下來來考慮一下你的想法:$no%4;這是一個求余,按理來講,當取到后邊這個$no%4的時候,應該是在$no%$maxline=0的時候,由于$maxLine=4,那么此處你的結果也為0,仔細考慮一下,你能坐到第0個位置嗎?實際上還是第四個位置。


2 回復 有任何疑惑可以回復我~
#1

Arvin_Deng 提問者

確實是,因為當$no為4的時候,這樣的等式就已經不成立了!看來還是太過于粗心了!謝謝你的指導,讓自己發覺在編程的道路上還有很遠的路程要走!
2016-03-18 回復 有任何疑惑可以回復我~
#2

_heyshadow 回復 Arvin_Deng 提問者

_(:зゝ∠)_說指導太夸張啦。細心一點就好~加油↖(^ω^)↗!
2016-03-18 回復 有任何疑惑可以回復我~
<?php?
?????$maxLine?=?4;?//每排人數
??$no?=?17;//學生編號
?????$line?=?ceil($no/$maxLine);
??$row?=?$no%$maxline?$no%$maxLine:$maxLine;
?

??echo?"編號<b>".$no."</b>的座位在第<b>".$line."</b>排第<b>".$row."</b>個位置";
?>


0 回復 有任何疑惑可以回復我~
#1

Arvin_Deng 提問者

你這個是原代碼,是錯誤的!
2016-03-11 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
PHP入門篇
  • 參與學習       456423    人
  • 解答問題       6590    個

PHP入門教程輕松學習,行業大牛幫您快速掌握PHP編程基礎知識。

進入課程

關于代碼錯誤問題的糾正

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號