作者how155031 (cow)
看板C_and_CPP
标题[问题] c++ while指令
时间Wed Apr 8 19:44:29 2009
题目:
不超过10000的最大次方
对於每个小於10000的正整数A 一定有一个正整数N
使得A的N次方小於或等於10000 而A的N+1次方则超过10000
现在要写一个程式 输入一个整数A 印出对应的N以及A的N次方的值
答案写的:
int a,b=1,n=0;
cout<<"请输入一个数字"<<endl;
cin>>a;
while(a*b<=10000)
{
b=a*b;
n++;
}
cout<<n<<" "<<b<<endl;
system("PASUE");
return 0;
}
我的疑问:
1.第一行的b=1还有n=0是什麽意思?
我没打指令说n代表次方的次数 为什麽程式知道那是次方的次数?
2.while条件为什麽是a*b 不是a*a?
3.while那边的大括号里面的n++为什麽不能打n+1?
我是c++的初学者 昨天从刚开始一直看到switch 到还看的懂
就今天看到while 我卡住了 感觉差很多 都不知道为什麽要打那些码
拜托 c++的大大们替我解说一下 谢谢...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.116.102.87
1F:→ VictorTom:1. n是程式设计者设计用来累计次方数的, 不是程式知道, 04/08 19:53
2F:→ VictorTom:是您要去了解设计者写这个程式的想法, 与他的变数用途. 04/08 19:54
3F:→ VictorTom:2. a用来放原来的值, b放的是连乘後的值, 你要算a自乘 04/08 19:55
4F:→ VictorTom:几次, 设计者把到目前为止的连乘结果存在b, 所以是a*b 04/08 19:55
5F:→ VictorTom:3. n++代表n=n+1的意思, 只写n+1在这没意义语法也不对. 04/08 19:56
6F:→ VictorTom:最後给您一个良心的建议, 学程式语言不是用"看"的, 是 04/08 19:57
7F:→ VictorTom:要一点一点练习"写"的, 不要觉得书看过好像懂了就看下 04/08 19:57
8F:→ VictorTom:去, 初学的话, 请从HelloWorld就开始写/compile/run. 04/08 19:58
9F:→ VictorTom:程式里的语法都认得了, 还不懂为什麽时, 就试着用自己 04/08 19:59
10F:→ VictorTom:的大脑当电脑, 准备纸笔一行一行跟着算, 会比较好懂. 04/08 19:59
11F:→ VictorTom:忘了回1.的第一行, 那是用来给变数初值用的.... 04/08 20:01
12F:→ VictorTom:murmur: 小弟差一篇就可以在八卦板推文了, 干麻不reply 04/08 20:01
13F:→ VictorTom:算了....>_<# 04/08 20:01
14F:→ how155031:谢谢你 程式我有用写的 看完之後的随堂练习都是我自己写 04/08 20:03
15F:→ how155031:只是看到while这里我连一点头绪都没有= = 所以才来这问 04/08 20:04
16F:→ how155031:ptt我也刚开始用 所以你回的最後2行我不懂什意思抱歉= = 04/08 20:06
17F:推 VictorTom:对不起~~因为您的问#1,#3, 还有"从昨天一直看到switch" 04/08 20:06
18F:→ VictorTom:给小弟这种错觉, 所以才会最後写那样的建议<(_ _)> 04/08 20:07
19F:→ VictorTom:後面那两行是小弟的闲聊碎碎念啦, 不用理它XD 04/08 20:08
20F:推 VictorTom:不过, 拿纸笔写/算整个程式的流程, 或者用debug step by 04/08 20:13
21F:→ VictorTom:step(一行一行trace code), 观看所有变数变化的情形, 也 04/08 20:14
22F:→ VictorTom:仍然是一个土法链钢去了解程式在写什麽的方式:) 04/08 20:14
23F:→ how155031:恩~谢谢你 下礼拜要期中考= = 现在才开始学 有点混XD 04/08 20:22
24F:→ how155031:混到现在每天晚上都在玩c++ = =" 04/08 20:23
25F:推 VictorTom:传说中~~小考小玩, 大考大玩, 不考照玩....XD 04/08 20:35