|
查看: 1646|回复: 18
|
遇到C++难题。。。高手救救我
[复制链接]
|
|
|
小弟简单说明题目,
用C++写一个软件让user input一个integer,比如user 打3
必须prompt出星星如下
*
***
*****
比如user 打4,如下
*
***
*****
*******
user所input的号码是星星的line,而prompt出的星星结果必须是三角形的。
(小弟已知要用最少3个loop做,但想不到怎么把星星完整排成三角形。。)
先谢过各位大大... |
|
|
|
|
|
|
|
|
|
|
发表于 2-6-2010 12:10 PM
|
显示全部楼层
随便看看得到大概酱的结论...
星星的数量是init = 1, 每loop +2
空格的init = user input , 每loop -1
row的init = 0, 每loop -1 , loop end 小过 user input integer |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 2-6-2010 12:40 PM
|
显示全部楼层
先谢过AdventChildren大大,三角形问题已找到解决方法了。。
刚刚又看到另一个题目,
user 会input一个integer,写一个programme把这个integer reverse。(input只有一个integer)比如user input 123,prompt出结果是321。假如input是321,结果必须会是123。 |
|
|
|
|
|
|
|
|
|
|
发表于 2-6-2010 02:08 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 14-6-2010 03:12 PM
|
显示全部楼层
本帖最后由 magiczerox 于 14-6-2010 03:14 PM 编辑
小弟又遇到难题,
一组integer array有10个号码,
int array[10]={1,2,3,4,5,6,7,8,9,10};
请问如何把array里面的数字转换成英文字母?(比如把array[0] 变去 X, 而不是号码。)
最好有code,先谢谢各位大大 |
|
|
|
|
|
|
|
|
|
|
发表于 14-6-2010 05:38 PM
|
显示全部楼层
本帖最后由 doktorkoo 于 14-6-2010 05:51 PM 编辑
回复 5# magiczerox |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 14-6-2010 05:43 PM
|
显示全部楼层
回复 magiczerox
用loop 的原理来做
doktorkoo 发表于 14-6-2010 05:38 PM 
这位大大能解释得具体一点吗?不是很明白如何用loop做。。。loop能把integer转成character? |
|
|
|
|
|
|
|
|
|
|
发表于 14-6-2010 05:44 PM
|
显示全部楼层
回复 7# magiczerox
修正了,加了example,自己去看看 |
|
|
|
|
|
|
|
|
|
|
发表于 14-6-2010 05:47 PM
|
显示全部楼层
回复 7# magiczerox
不好意识,我误会你的意识了,以上例子可以忽略了 |
|
|
|
|
|
|
|
|
|
|
发表于 14-6-2010 05:51 PM
|
显示全部楼层
回复 7# magiczerox
要转换去character 方法就是开一个char format 的array这是你要的吗?
- char myword [] = { 'H', 'e', 'l', 'l', 'o', '\0' }
复制代码 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 14-6-2010 06:30 PM
|
显示全部楼层
回复 magiczerox
要转换去character 方法就是开一个char format 的array这是你要的吗?
doktorkoo 发表于 14-6-2010 05:51 PM 
其实我是想做一个cinema的买票和取消票的program,我要做成那个座位如果卖了的话会变成X,然后可以取消座位让X变回座位原本的号码。 |
|
|
|
|
|
|
|
|
|
|
发表于 14-6-2010 06:52 PM
|
显示全部楼层
本帖最后由 doktorkoo 于 14-6-2010 06:58 PM 编辑
回复 11# magiczerox
其实用char array 来做也行啊,买了票后,把'X'输入进去array, 未满时就空着咯。。当然你要设定array 的大小先, 然后号码用character 的format lo ,然后用swap method 来转换 'X' 和 号码根据买/取消指令 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 14-6-2010 07:04 PM
|
显示全部楼层
回复 magiczerox
其实用char array 来做也行啊,买了票后,把'X'输入进去array, 未满时就空着咯。。当 ...
doktorkoo 发表于 14-6-2010 06:52 PM 
谢谢你,不过swap method小弟不明白,能否给code?小弟还是一个初学者,请多多包涵 |
|
|
|
|
|
|
|
|
|
|
发表于 14-6-2010 07:12 PM
|
显示全部楼层
本帖最后由 doktorkoo 于 14-6-2010 07:16 PM 编辑
回复 13# magiczerox
比如 variable a 是收 'x' 的, variable b 是'数值'
以下有2种方法
第一种
temp = a
a = b
b = temp
第2种
swap(a,b)
还有,swapping 的首要条件是两者必须是要相同data type, 比如char 和 char 对换 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 14-6-2010 09:33 PM
|
显示全部楼层
回复 magiczerox
比如 variable a 是收 'x' 的, variable b 是'数值'
以下有2种方法
第一种
temp = ...
doktorkoo 发表于 14-6-2010 07:12 PM 
如果用char的确能够很容易的换成‘X’但是就不能两个数字的号码在同一个variable了(比如一个char不能是10吧),座位是有超过10号的。。 |
|
|
|
|
|
|
|
|
|
|
发表于 14-6-2010 10:15 PM
|
显示全部楼层
本帖最后由 doktorkoo 于 14-6-2010 10:21 PM 编辑
如果用char的确能够很容易的换成‘X’但是就不能两个数字的号码在同一个variable了(比如一个char不能是 ...
magiczerox 发表于 14-6-2010 09:33 PM 
Char 不能,就尝试用string来走看看
用if-else/switch 来做, 先判断array index number 是多少,然后在给那个variable 置入‘数值’例如:
- for(int i = 0; i<a.length;i++)
- {
- switch (i)
- {
- case 0: b=1;break;
- case 1: b=2;break;
- case 2: b=3;break;
- case 3: b=4;break;
- case 4: b=5;break;
- }
- a[i] =b;
-
- }
复制代码 PS: ,当你写ifelse/swicth case ,记得要放上char/string的符号, |
|
|
|
|
|
|
|
|
|
|
发表于 14-6-2010 10:35 PM
|
显示全部楼层
第一: 你的是 int array, 你期待int 可以用来储存 character ?你明白什么诗 int ?干吗不直接用 string ?
第二: 如果只是要简单的 seat availability, 而作为诗纯号码,可用
bool seat[ <seat no> ] = <availability>
- bool seat[20]; //seat no 1 - seat 20
- seat[5] = true; // seat no 5 is available
- seat[6] = false; // seat no 6 is taken
复制代码 如果要比较复杂的, 如作为诗有号码,字母组成的, 可用 OO concept, 用 class / structure
- struct Seat {
- string no;
- bool available;
- };
- Seat seat[20];
- seat[0].no = "A01"; // seat no set to A01
- seat[0].available = true; //seat A01 is available
复制代码 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 15-6-2010 08:44 PM
|
显示全部楼层
第一: 你的是 int array, 你期待int 可以用来储存 character ?你明白什么诗 int ?干吗不直接用 string ...
onlylonly 发表于 14-6-2010 10:35 PM 
这位仁兄,小弟是打算弄一个loop的integer array来让所有座位自己loop出来而且带有座位号码,所以才想办法把已卖出的座位变成‘X’。虽然char能做到座位有相印的号码而且可以变成‘X’,但是就不能在一个array出现两个数字(比如10)。 而小弟不擅长用string(请原谅我是个菜鸟)
不过我今天找到一个好像能把char换成integer的方法,
连接:http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/
但是小弟不是很明白里面的用法。。哪位高手能指点指点。。 |
|
|
|
|
|
|
|
|
|
|
发表于 16-6-2010 12:29 PM
|
显示全部楼层
atoi()是把STRING换去INT....INT X = ATOI("10");
注意CHAR* != CHAR.... |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|