c程式問題(++a)

2010-11-15 1:26 am
1. int rowcount;
2. int columncount;
3. int count;

4. printf("Enter a integer\n");
5. scanf("%d",&rowcount);
6. for(count=1;count<=rowcount;++count)
{
if (count==2)
{printf("hi");
printf("\n");}
else;
for(columncount=1;columncount<=count;columncount++)
{
printf("%d",columncount);
}
printf("\n");
}
return 0;

我想問第6個個;++count唔係先+1咩即係第一次就變2,點解佢第一次都係1?

回答 (2)

2010-11-15 5:34 am
✔ 最佳答案
>> 6. for(count=1;count<=rowcount;++count) { }
>> 我想問;++count唔係先+1咩即係第一次就變2,點解佢第一次都係1?

呢位朋友將兩件事當成一件事睇了。
你對 ++count; 和 count++ ; 了解正確,但在這個清況不適用。
for 共有三句,第一句係初始值,無論如何解讀,第一次count都會是1。
第二句係每個loop的checking,無問題。
第三句係每個loop完成後執行句語。即係 count=count+1。寫成 count++和++count在這裡都無分別。因為回傳值根本無人接收。
如果句子是 x = ++count; 那麼x值是有別,但for句子並不是assignment。
2010-11-15 2:10 am
for(count=1;count<=rowcount;++count){/* whatever */}has the same effect as the following using while instead.count=1;while(count<=rowcount){/* whatever */++count;}++count is being executed lastly, that's why count equals to 1 in the first loop.


收錄日期: 2021-04-26 11:33:30
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20101114000051KK01154

檢視 Wayback Machine 備份