#include <stdio.h>
void convert(int i,int j,char a[100]){
char b;
if(i<j)
{
b=a[i];
a[i]=a[j];
a[j]=b;
convert(i+1,j-1,a[100]);
}
}
void main()
{
int k;
char c[100];
printf("\nplease input:");
gets(c);
k=strlen(c)-1;
convert(0,k,c[k]);
printf("\n%s",c);
}
----------------解决方案--------------------------------------------------------
convert(0,k,c[k]);
改
convert(0,k,c);
convert(i+1,j-1,a[100]);
改
convert(i+1,j-1,a);
by 雨中飞燕 QQ:78803110 QQ讨论群:5305909
[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
C/C++算法习题(OnlineJudge):[url]http://yzfy.org/[/url]
----------------解决方案--------------------------------------------------------
#include <stdio.h>
void convert(int i,int j,char a[])
{
char b;
if(i<j)
{
b=a[i];
a[i]=a[j];
a[j]=b;
convert(i+1,j-1,a);
}
}
void main()
{
int k;
char c[100];
printf("\nplease input:");
gets(c);
k=strlen(c)-1;
convert(0,k,c);
printf("%s \n",c);
}
测试是正确的
[此贴子已经被作者于2007-9-4 23:03:20编辑过]
----------------解决方案--------------------------------------------------------
#include <stdio.h>
#include <string.h>
void Reverse(char *str, int len){
if(str + len == str){
putchar(*str);
return ;
}
else{
putchar(*(str + len));
Reverse(str, len-1);
}
}
int main(void){
char str[100];
while(NULL != gets(str) && '\0' != *str)
Reverse(str, strlen(str) - 1);
return 0;
}
----------------解决方案--------------------------------------------------------
#include <stdio.h>
void foo(char *s)
{
char *p;
if(s == NULL)
{
return;
}
p = s;
if(*s != '\0')
{
foo(++p);
}
printf("%c",*s);
}
int main()
{
char *s = "12345";
foo(s);
return 0;
}
----------------解决方案--------------------------------------------------------
谢谢
----------------解决方案--------------------------------------------------------
为什么这样,飞燕?
----------------解决方案--------------------------------------------------------
四楼的!给点注释么.
----------------解决方案--------------------------------------------------------