English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

(一)為何答案為Sum is equal to 8,請詳解....謝謝...
#include
#include
#include

using namespace std;

int even(int *p,int x);

int main()
{
int i = 0, sum =0;
for(i++;i<=10;++i)
even( &sum,i);
cout<<"Sum is equal to " < system("pause");
}

int even(int *p,int x)
{
*p+=(x>=3);
}

(二)為何答案為
*
**
*** 請詳解....謝謝...
#include
#include
#include

using namespace std;

int main()
{
int column, row =1;
do {
column =0;
while(++column <= row) cout<<'*';
row++;
cout<<'\n';
} while(row<=3);
system("pause");
}

2007-01-18 07:29:41 · 2 個解答 · 發問者 擁抱陽光 1 in 電腦與網際網路 程式設計

2 個解答

(一)
int main()
{
int i = 0, sum =0;

for(i++;i<=10;++i) /* i 的值 從 1 到 10 */
even( &sum,i); /* i 的值 從 3 到 10 時 sum 才會增加 1 */
cout<<"Sum is equal to " < system("pause");
}

int even(int *p,int x)
{
*p+=(x>=3); /* 當 x 的值 大於等於 3 時 p 的值加 1 */
}
(二)
int main()
{
int column, row =1;
do {
column =0;
進迴路後 column 會先加 1 再比值
=> column = 1 <= row = 1 => 印 1 個 '*'
=> column = 2 > row = 1 => 跳出 while
=> row + 1 變成 2 ; 印 1 個 ' \n ' (跳下一行); 回下一個 do
=> column = 1 <= row = 2 => 印 1 個 '*'
=> column = 2 <= row = 2 => 印第 2 個 '*'
=> column = 3 > row = 2 => 跳出 while
=> row + 1 變成 3 ; 印 1 個 ' \n ' (跳下一行); 回下一個 do
=> column = 1 <= row = 3 => 印 1 個 '*'
=> column = 2 <= row = 3 => 印第 2 個 '*'
=> column = 3 <= row = 3 => 印第 3 個 '*'
=> column = 4 > row = 3 => 跳出 while
=> row + 1 變成 4 ; 印 1 個 ' \n ' (跳下一行); 跳出 do
while(++column <= row) cout<<'*';
row++;
cout<<'n';
} while(row<=3);
system("pause");
}
如果有問題, 請來函討論. 不然, 我可能會錯失你再補充的疑點.

2007-01-18 07:58:26 · answer #1 · answered by JJ 7 · 0 0

第一個問題不可能為8
因為提問者打錯了吧
for (i++; i <= 10; ++i)
會先計算一次 i++
然後到下一個迴圈之前又 ++i
所以在迴圈內 i = 1, 3, 5, 7, 9, 11;
所以答案會是6


for (;i<=10;++i)
迴圈內才會是 i = 0,1,2,....,10
答案才是8

2007-01-18 12:51:59 · answer #2 · answered by ? 1 · 0 0

fedest.com, questions and answers