|
|
发表于 3-10-2008 08:15 PM
|
显示全部楼层
原帖由 Wongkokchoy 于 3-10-2008 08:03 PM 发表 
想到了,应该是这样吧!
do
{
coutdice;
if (dice !='q'&& dice!='t')
{
cout
或许这样会比较好
if (dice !=toupper('q') && dice!=toupper('t')) // 抱歉, 这个写错了
if (toupper(dice) !='Q' && toupper(dice) !='T') // 这个才是
怎样不管大小写t 或 q 都行了
[ 本帖最后由 onlylonly 于 3-10-2008 08:25 PM 编辑 ] |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 3-10-2008 08:19 PM
|
显示全部楼层
原帖由 onlylonly 于 3-10-2008 08:15 PM 发表 
或许这样会比较好
if (dice !=toupper('q') && dice!=toupper('t'))
怎样不管大小写t 或 q 都行了
如果要用toupper的话,需要任何header file吗? |
|
|
|
|
|
|
|
|
|
|
发表于 3-10-2008 08:22 PM
|
显示全部楼层
回复 82# Wongkokchoy 的帖子
要
turbo c++ 5.02 写法
#include <ctype.h>
正规写法
#include <cctype> |
|
|
|
|
|
|
|
|
|
|
发表于 3-10-2008 08:24 PM
|
显示全部楼层
回复 82# Wongkokchoy 的帖子
抱歉写错写错
是
if (toupper(dice) !='Q' && toupper(dice) !='T') |
|
|
|
|
|
|
|
|
|
|
发表于 3-10-2008 11:47 PM
|
显示全部楼层
原帖由 onlylonly 于 3-10-2008 08:01 PM 发表 
非也非也, 我其实并非如 hackintosh 描写般厉害。
当时之所以能成功架设linux服务器介因天时,地利,人和。 全是外力,并非自己厉害。 天时是运气, 地利是因为环境允许, 当时电脑室尚有多余电脑,又因蕫教总的 ...
果然是cari新人王, 强~~~~~
不要说现在的degree和diploma student, 他们已经成为了马来西亚教育制度偏差的牺牲品(国立的不受, 私立的只要赚钱而忽略学生品质, 加上学生们的思想还不够"大")
你能18岁能干出这种成绩, 你已经可以胜任大部分的diploma学生
读书和打工当然是为了知识和未来
现在还有学生在学校混日子, 为文凭
打功就先问薪水多少
haiz
试问有多少东西是靠自己的双手一滴一滴做出来的啦
onlyonly加油
楼主, 虽然我在你的贴灌水
但你却可以见识到cari新人王的功力, 应该是赚到啦
楼主加油 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 4-10-2008 12:54 AM
|
显示全部楼层
看到onlylonly的经验还真的让我佩服的五体投地 orz.
灌水不是问题啦,只要班主不来封楼就行了。
还有一个问题,
每次我做array的时候,我都不懂要如何让user自行set array's cell 的数量。每次我都是用酱的方法来骗的
#define m 50000000;
int player[m];
请问有没有那些方法能够让user自行设定array cell 的数量吗? |
|
|
|
|
|
|
|
|
|
|
发表于 4-10-2008 08:56 AM
|
显示全部楼层
回复 86# Wongkokchoy 的帖子
有, 用dynamic array, 或vector,deque,list
dynamic array:
int *player = new int[50]; // 50 elements array
或
int input, *player;
cout << "number of array :";
cin >> input;
player = new int [input];
至于vector,deque,list 的,这个比较广, 可以自行去 www.cplusplus.com 查看。
用法一般上是
vector<int> player;
player.push_back( <variable/ input> );
deque , list 可以push_back 与 push_front, vector 只能 push_back
[ 本帖最后由 onlylonly 于 4-10-2008 09:46 AM 编辑 ] |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 4-10-2008 09:30 AM
|
显示全部楼层
原帖由 onlylonly 于 4-10-2008 08:56 AM 发表 
int *player = new int[50]; // 50 elements array
这个我做到:
- #include <iostream.h>
- void main()
- {
- int n, code;
- cout<<"Tell me how many player(s).\n";
- cin>>n;
- int *player=new int [n];
- for (int x=0; x<n; x++)
- {
- code=x+1;
- cout<<"key in the code number of player "<<code<<".\n";
- cin>>player[x];
- }
- }
复制代码
可是这个有error:
int input, *player;
cout << "number of array :";
cin >> input;
player = new [input];
" border="0"> |
|
|
|
|
|
|
|
|
|
|
发表于 4-10-2008 09:45 AM
|
显示全部楼层
回复 88# Wongkokchoy 的帖子
写错写错, 我今天搞什么的
是
int input, *player;
cout << "number of array :";
cin >> input;
player = new int [input]; |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 4-10-2008 10:13 AM
|
显示全部楼层
可以了,谢谢你。 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 5-10-2008 04:48 PM
|
显示全部楼层
还有一件事,就是如果我要小的function从main function那边拿value的话;要怎么做?
比如:
我要从main function里面拿int number的value去subfunction.
void Ladder(int number)
{
cout<<"\nLook!! There is a ladder over there!\n";
cout<<" layer "<<number<<" climb up the ladder.\n";
return number;
}
上面那个不能RUN, 因为有一些error。
有谁能帮我吗?
没猜错的话一定是onlylonly来帮我
[ 本帖最后由 Wongkokchoy 于 5-10-2008 04:52 PM 编辑 ] |
|
|
|
|
|
|
|
|
|
|
发表于 5-10-2008 05:06 PM
|
显示全部楼层
回复 91# Wongkokchoy 的帖子
我帮onlyonly回答吧, onlyonly不介意吧
当你declare
void anyName(int anyInterger){
/*whatever*/
return anyInteger;
}
是错的
因为void 是没有return value
如果你要return value
用
int anyName(int anyInterger){
/*whatever*/
return anyInteger;
} |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 5-10-2008 05:29 PM
|
显示全部楼层
对,我忘了-.-
所以如果我要用return的话, 就一定不可以用void就对了。
那么如果我用void的话,我第二次做function call的时候,number 会变成上一次的value吗? |
|
|
|
|
|
|
|
|
|
|
发表于 5-10-2008 09:24 PM
|
显示全部楼层
回复 93# Wongkokchoy 的帖子
@晨天
你帮我答才好哩。。 明天开始考试了,应该不得空上来了。
-----------
每一次你call function, function的 parameter value 就会变
int main()
{
...................
Ladder(3); // number = 3
Ladder(10); // number = 10
return 0;
}
/*void Ladder(int number)*/ // number is parameter, also known as argument |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 6-10-2008 07:36 AM
|
显示全部楼层
onlylonly在考试啊,那就不方便打扰了。
还有一个问题:
我想从main function那里拿player [x]的value去void Snake, 可是有error。。。。、
我连phototype那边也跟着换了,可也是不行。
void Snake(int number, int player[x])
{
cin.get();
cout<<"\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SNAKE~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n";
cout<<"\nWoot!! Player "<<number<<" meets an anaconda!!!!\n";
cin.get();
cout<<"In order to escape from the snake, player "<<number<<" had run away.\n";
cout<<" Player "<<number<<" had reached "<<player[x]<<"!\n\n";
cout<<"\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SNAKE~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n";
}
哪里出了问题呢?
[ 本帖最后由 Wongkokchoy 于 6-10-2008 12:38 PM 编辑 ] |
|
|
|
|
|
|
|
|
|
|
发表于 6-10-2008 12:52 PM
|
显示全部楼层
void Snake(int number, int player[x])
{
cin.get();
cout<<"\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SNAKE~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n";
cout<<"\nWoot!! Player "<<number<<" meets an anaconda!!!!\n";
cin.get();
cout<<"In order to escape from the snake, player "<<number<<" had run away.\n";
cout<<" Player "<<number<<" had reached "<<player[x]<<"!\n\n";
cout<<"\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SNAKE~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n";
}
改成
void Snake(int number, int player)
{
cin.get();
cout<<"\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SNAKE~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n";
cout<<"\nWoot!! Player "<<number<<" meets an anaconda!!!!\n";
cin.get();
cout<<"In order to escape from the snake, player "<<number<<" had run away.\n";
cout<<" Player "<<number<<" had reached "<<player<<"!\n\n";
cout<<"\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SNAKE~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n";
}
我可能没时间上来回答, 但是有其他高手回答的, 如 geekman 等等。。
[ 本帖最后由 onlylonly 于 6-10-2008 11:40 PM 编辑 ] |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 8-10-2008 04:03 PM
|
显示全部楼层
朋友的好心提醒,让我想起一个大问题!!!!
do // do-while loop to avoid user to key in negative value or zero
{
cout<<"\nPlease enter the numbers of players:\n";
cin>>n;
if (n<=0)
cout<<"INVALID number of player!\n";
}
如果那个user故意key-in alphabet的话,我的while loop就变成infinite loop 了。。。。
有什么办法能够解决吗? |
|
|
|
|
|
|
|
|
|
|
发表于 8-10-2008 04:19 PM
|
显示全部楼层
回复 97# Wongkokchoy 的帖子
写一个 number checking function, 再用 atoi 转换成为 int- bool check_number( string input )
- {
- int i;
- for( i = 0; i < input.length(); i++ )
- if( isdigit( input ) == false )
- return false;
- return true;
- }
复制代码 用法- #include <iostream.h> //#include <iostream>
- #include <ctype.h> // #include <cctype>
- #include <string.h> //#include <string>
- //using namespace std;
- bool check_number( string input );
- int main()
- {
- string input;
- int n;
- cin >> input;
- if( check_number( input ) == false)
- cout << "INVALID , INPUT NOT NUMBER";
- else
- n = atoi(input.c_str());
-
- return 0;
- }
- bool check_number( string input )
- {
- int i;
- for( i = 0; i < input.length(); i++ )
- if( isdigit( input ) == false )
- return false;
- return true;
- }
复制代码
[ 本帖最后由 onlylonly 于 8-10-2008 04:35 PM 编辑 ] |
|
|
|
|
|
|
|
|
|
|
发表于 8-10-2008 04:28 PM
|
显示全部楼层
回复 97# Wongkokchoy 的帖子
若用在你的code 里就- string input;
- .......................
- // YOUR CODE
- .............
- do // do-while loop to avoid user to key in negative value or zero
- {
- cout<<"\nPlease enter the numbers of players:\n";
- cin >> input;
- /*********** NUMBER CHECKING ***************/
- if( check_number( input ) == false)
- cout << "INVALID , INPUT NOT NUMBER";
- else
- n = atoi(input.c_str()); // convert string to integer, store to n
- /*******************************************************/
- if (n<=0)
- cout<<"INVALID number of player!\n";
- }
复制代码
[ 本帖最后由 onlylonly 于 8-10-2008 04:36 PM 编辑 ] |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 8-10-2008 04:36 PM
|
显示全部楼层
这个有一点深, 我再问lecturer要不要放下去, 毕竟他也没有教。。。
然后我尝试放cin.getline 进去我的function可是有error.....
void winner(int, char); // phototype
char *name[100];
for (int x=0; x<n; x++)
{
cout<<"Please enter player "<<(x+1)<<"'s name.\n";
cin.getline (name[x], 100);
}
if (player[x]==100) // exits loops when one of the players reach 100
{
winner (number, name); <-------------------------------------
break;
}
void winner(int number,char name )
{
cin.get();
cout<<"\n\n----------------------------------WINNER---------------------------------------\n";
cout << "\n"<<name<<" Player [" <<number<< "] win!!!!\n\nCongratulation!!!\n\n"<<endl;
cout<<"----------------------------------WINNER---------------------------------------\n";
}
error是cannot convert 'char**' to ‘char'
type mismatch in parameter 2 in call to winner(int, char) |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|