好惨,最近的水平不断下降,算法题入门了,入门题反而不会了,看来得巩固基础,不能眼高手低
请编写一个递归函数 reverse(char str[], int start, int end ) ,该函数的功能是将串 str 中下标从 start 开始到 end 结束的字符颠倒顺序。假设 start 和 end 都在合理的取值范围。
例如:
执行前:str[]="0123456";start=1 ;end=4
执行后:strr[]="0432156"
要求在该函数中不使用新的数组,没有循环。
#include <stdio.h>
void reverse(char str[], int start, int end )
{//请完成此函数
}
int main( )
{ char str[100];
int start, end;
gets(str);
scanf("%d%d", &start, &end);
reverse( str, start, end );
printf("%s\n", str);
return 0;
}
void reverse(char str[], int start, int end )
{
char c;
if (start<end) {
c=str[start];
str[start]=str[end];
str[end]=c;
reverse(str,start+1,end-1);
}
}
# include<stdio.h>
#include<stdlib.h>
FILE *fp;
void abc()
{char c;
if((c=getch())!='\n')
{printf("%c",c);
abc();
fprintf(fp,"%c",c);
}
}
void main( )
{
if((fp=fopen("d:\\out.txt","w"))==NULL)
{
printf("write file error!");
getch();
exit(1);
}
abc();
fclose(fp);
}