佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1646|回复: 18

遇到C++难题。。。高手救救我

  [复制链接]
发表于 2-6-2010 08:02 AM | 显示全部楼层 |阅读模式
小弟简单说明题目,
用C++写一个软件让user input一个integer,比如user 打3
必须prompt出星星如下
    *
  ***
*****
比如user 打4,如下
      *
    ***
  *****
*******
user所input的号码是星星的line,而prompt出的星星结果必须是三角形的。
(小弟已知要用最少3个loop做,但想不到怎么把星星完整排成三角形。。)
先谢过各位大大...
回复

使用道具 举报


ADVERTISEMENT

发表于 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 | 显示全部楼层
把string变array从后面print起。
回复

使用道具 举报

 楼主| 发表于 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
回复

使用道具 举报

Follow Us
 楼主| 发表于 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,自己去看看
回复

使用道具 举报


ADVERTISEMENT

发表于 14-6-2010 05:47 PM | 显示全部楼层
回复 7# magiczerox


   不好意识,我误会你的意识了,以上例子可以忽略了
回复

使用道具 举报

发表于 14-6-2010 05:51 PM | 显示全部楼层
回复 7# magiczerox

要转换去character 方法就是开一个char format 的array这是你要的吗?
  1. 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 置入‘数值’例如:

  
  1.         for(int i = 0; i<a.length;i++)
  2.          {
  3.                 switch (i)
  4.                 {
  5.                         case 0: b=1;break;
  6.                         case 1: b=2;break;
  7.                         case 2: b=3;break;
  8.                         case 3: b=4;break;
  9.                         case 4: b=5;break;
  10.                 }
  11.                 a[i] =b;
  12.                
  13.          }
复制代码
PS: ,当你写ifelse/swicth case ,记得要放上char/string的符号,
回复

使用道具 举报


ADVERTISEMENT

发表于 14-6-2010 10:35 PM | 显示全部楼层
第一: 你的是 int array, 你期待int 可以用来储存 character ?你明白什么诗 int ?干吗不直接用 string ?

第二: 如果只是要简单的 seat availability, 而作为诗纯号码,可用
bool seat[ <seat no> ] = <availability>

  1. bool seat[20]; //seat no 1 - seat 20
  2. seat[5] = true; // seat no 5 is available
  3. seat[6] = false; // seat no 6 is taken
复制代码
如果要比较复杂的, 如作为诗有号码,字母组成的, 可用 OO concept, 用 class / structure

  1. struct Seat {
  2.       string no;
  3.       bool available;
  4. };

  5. Seat seat[20];
  6. seat[0].no = "A01"; // seat no set to A01
  7. 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....
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 25-11-2025 02:05 AM , Processed in 0.137731 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表