嘿嘿,既然封我一个“斑竹”,咱也别客气,有权不用过期作废,想要加钱 ,加威望,加...的,只要你回答是最好的,我就加!
问题:
1。A,B两字符,可组成长度为10的字符串的所有的解。
例:AAAAAAAAAA,AAAAAAAAAB,AAAAAAAAABB,.......
2. 反序输出输入的字符串
例:输入 ABCDEFG
输出 GFEDCBA
[此贴子已经被作者于2004-08-28 13:47:13编辑过]
第一道题用循环就可以写
我给第二题的答案
#include <string.h>
main()
{
char str[80];
int c,i,j;
printf("enter a string:\n");
gets(str);
for(i=0,j=strlen(str)-1;i<j;i++,j--)
{
c=str[i];
str[i]=str[j];
str[j]=c;
}
printf("Reversed string:\n");
puts(str);
}
[此贴子已经被作者于2004-08-28 18:03:25编辑过]
臭knocker,第二题做出来了,快发奖品吧,不要告诉我一等奖是你的马桶板,我不要那个,你拿回去烧饭好了!另外,cout<<等于printf(),换了一下而已,C++的,天使和忆楠应该看得懂吧?
#include<iostream.h> #include<string.h>
void B_char(char[],int);
void main() { char str[11]="AAAAAAAAAA"; cout<<str<<endl<<endl; int length=sizeof(str)/sizeof(char); B_char(str,length); }
void B_char(char str[],int length) { if(strcmp(str,"BBBBBBBBBB")!=0) { str[length-2]='B'; cout<<str<<endl; for(int i=length-3;i>=0;i--) { str[i]='B'; cout<<str<<endl; str[i]='A'; } B_char(str,--length); } }
[此贴子已经被作者于2004-08-28 19:51:56编辑过]
(1)给个具有C语言特色的代码:
/*其实AB串就等价于01串,也就是二进制串,10位也就是举出0——2^10-1的二进制数,然后转化成AB的形式就可以了*/
这个代码的效率应该是OK的,是吧,knocker?至于奖品,我是不太期待猜谜能给什么。
main() {int max=1,n,i,j; max=max<<10;
for(i=0;i<max;i++) {for(j=0;j<10;j++) {n=(i>>j)&1;n=n+'A'; printf("%c",n);} printf("\n");getch();} }
===========================
整理一下
void main(void) { int max=1,n,i,j ;
max=max<<10 ; //max左移后为二进制的10000000000,即十进制的1024 for(i=0;i<max;i++) {//做0~1023的循环 for(j=0;j<10;j++) { n=(i>>j)&1 ;//取得二进制 i 每一位 n=n+'A' ;//为0则打印 A,为 1则打印 B printf("%c",n); } printf("\n"); getch(); } }
(2)的代码大同小异,就不凑热闹了[此贴子已经被knocker于2004-08-28 21:45:41编辑过]