数组问题,100分相赠!
想要实现这样的功能:
char a[10],b[10], c[10],...z[10];
char sz;
cin >> sz;
//如果sz= a,输出a[0],如果sz=b,输出b[0],....
sz:a ->a[0];
b ->b[0];
...
z ->z[0]
能不能不用case或if语句,只要sz输入范围在a~z之间,直接输出sz[0]?
我知道这个办法是错误的,但是由于我的程序中,类似这样的情况很多,如果都用if或case语句来判断的话,感觉很土,有没有哪个高人能够
有好的数据结构解决这样的问题?
谢了先!
问题点数:100、回复次数:5Top
1 楼steedhorse(晨星)回复于 2003-06-03 00:42:46 得分 30
char a[10],b[10], c[10],...z[10];
char sz;
char s[26] = {a[0] , b[0] , c[0] , d[0] , …… , z[0]};
cin >> sz;
cout << s[sz - 'a'];Top
2 楼bigtea(企鹅)回复于 2003-06-03 08:38:08 得分 20
char a[10],b[10], c[10],...z[10];
char sz;
char s[26][10];
cin >> sz;
cout <<a[10]<< s[sz - 'a'][10];Top
3 楼justaseeker(MS)回复于 2003-06-03 11:12:48 得分 20
char a[26][10];//定义为一个二维数组
char sz;
cin>>sz;
cout<<a[sz-'a'][0];//利用二进制码差来求Top
4 楼gernal_dn()回复于 2003-06-03 11:50:31 得分 10
二维数组
Top
5 楼flab_lwq()回复于 2003-06-03 12:09:58 得分 20
上面的方法都不错,不过最好把得到的输入都变成小写
cin >> sz;
sz = tolower(sz);
Top




