用递归实现倒序输出字符数组

时间:2022-12-28 22:15:39

  code:

#include<stdio.h>

#define SIZE 10

void ReveOrder(char * p)
{
	if (*p)
	{
		printf("%c ", *p);
		ReveOrder(--p);
	}
}

void Order(char * p)
{
	if (*p)
	{
		Order(--p);
		printf("%c ", *p);
	}
}

void Order_S(char * p)
{
	if (*p)
	{
		printf("%c ", *p);
		Order_S(++p);
	}
}

int main()
{
	char str[SIZE], *p = &str[SIZE - 1], *q = &str[SIZE], *s = str;
	int i;

	for (i = 0; i < SIZE; i++)
		str[i] = i + '0';

	puts("逆序:");
	ReveOrder(p);
	putchar('\n');

	puts("正序:");
	Order(q);
	putchar('\n');

	puts("正序:");
	Order_S(s);
	putchar('\n');

	return 0;
}