用C语言编写一个程序,实现一下功能以 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,Y,Z 这34个字符为从小到大的顺
语言编写一个程序,实现一下功能:
以 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,Y,Z 这34个字符为从小到大的顺序.编写一个四位数的字符串列表,比如:
输入要得到的字符串个数:38,就要得到
0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F 000G 000H 000J 000K
000L 000M 000N 000P 000Q 000R 000S 000T 000U 000V 000W 000X 000Y 000Z 0010 0011 0012 0013
.这38个字符串
如果输入1156,则得到:
0001 0002 …….00ZY 00ZZ
这1156个字符串
问题点数:0、回复次数:5Top
1 楼treeroot(旗鲁特)回复于 2005-06-02 10:40:11 得分 0
这个很简单吧Top
2 楼dophin1003(浮云~~~)回复于 2005-06-02 11:02:48 得分 0
34进制数吗?Top
3 楼wgjmail(笑面佛)回复于 2005-06-02 11:05:17 得分 0
不就是一个38进制的问题? 容易,不过要输入这么多个字符串挺无聊的Top
4 楼QunKangLi(心里面疼得有点发酸 一定是有雾来了 打湿了我的眼眶)回复于 2005-06-02 11:16:34 得分 0
//数字转成N进制的字符串。
//使用方法:value为输入的数值,string为结果缓冲区,radix为结果数制
//对楼主的特定问题要对代码做些改动:将CH[]中未用到的2个字符删除:
//static char CH[] = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ" ;
//然后用个循环for( int i = 0 ; i < num ; ++i ) printf( "%s\t", itoa( i, buf, 34 ) ;
//其中num为用户输入的数字,buf为结果缓冲区
char *itoa( int value, char *string, int radix )
{
static char CH[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" ;
char *p, *r, t ;
/*assert( radix >= 2 && radix <= 36 ) ; */
r = string ;
if( value < 0 ) *string++ = '-', value = -value ;
else if( value == 0 ) *string++ = CH[0] ;
p = string-- ;
while( value > 0 ) *p++ = CH[value % radix], value /= radix ;
*p = '\0' ;
while( ++string < --p ) t = *string, *string = *p, *p = t ;
return r ;
}Top
5 楼mostideal(三甲)回复于 2005-06-02 23:47:37 得分 0
markTop




