關於一段程式有幾個地方不解,求解答

時間 2022-03-08 17:15:20

1樓:

cin>>fish[i]是什麼?因為fish[i]是int型的,所以當輸入是int型資料時,cin>>fish[i]將構建乙個物件並呼叫其成員函式返回乙個相關的位址,而當輸入不是int型資料時將返回0。而!

(cin>>fish[i])是當返回為0時取反成1,所以while(!(cin>>fish[i])) 就是當你輸入的是非int資料時跳出迴圈。這裡!

是在(cin>>fish[i])前,所以是對(cin>>fish[i])起作用而非對cin起作用。

while(cin.get()!='\n')與while(!

(cin>>fish[i]))類似。但是,cin.get()是呼叫物件cin的成員函式get(),get()只從輸入緩衝區讀入乙個字元並返回這個字元,所以while(cin.

get()!='\n')就是當讀入的字元不是回車符'\n'迴圈繼續,而當讀入'\n'時結束迴圈。

這裡的while迴圈邏輯是不能用if完成的,因為if沒有迴圈功能。但while迴圈的控制功能是完全可以用if實現的。比如

while(!(cin>>fish[i]))這一段**完全可以用

while(1)

這一段來替代的。

2樓:匿名使用者

其實你的主要問題就是while是什麼,while的意思是表示後面括號裡的條件符合則執行下面大括號中的,不符合就迴圈到符合,而符合什麼就是第二個問題了要符合:輸入值到fish[i]不為真就是(!(cin>>fish[i]))而為什麼不用if我想這個原因是因為出這個例子的人是為了讓學習者鍛鍊while的使用方法,雖然這題出的挺繞人,但這是為了鍛鍊你嘛,至於你的第三個問題while(cin.

get()!='\n') 是說獲取輸入的字串即cin.get()不等於結束符即\n時為真....

你這問題真饒人....

求助 彙編的一段程式

bcd2asc mov dptr,0507h 目標首位址。mov r7,dpl 儲存到r6,r7 mov r6,dph mov dptr,0500h 源首位址。mov r5,dpl 儲存到r4,r5 mov r4,dph mov r3,07h 位元組總數。baloop movx a,dptr 讀取乙...

請教這一段C程式

sizeof p 這裡的p是陣列名,所以返回3是陣列的長度,如果你給陣列中添乙個元素他的值就會變化。sizeof char 字元的長度為1.sizeof q 因為 q指向陣列的首位址,所以 q p 0 是個字元,所以長度也為1,sizeof p 0 這個p 0 是個字元,長度為1 sizeof q ...

寫一段關於春天到來時的情景話,寫一段關於春天到來時的情景話

冰之愛戀薔薇 春天乃最美好的季節,俗話說 一年之際在於春。我愛春天應為他不像夏天那樣熱,也不像冬天那樣寒冷 我愛春天。春天來了,萬物復甦的季節。桃花的開放象徵著春天的到來桃花林中一朵朵花正在競相開放,美不勝收。他們有的笑紅了臉。春天柔柔地,小草拂著褲管,春的氣息那麼真實地貼近肌膚。有露珠停留,在葉尖...