注意是否溢出

//字符串
/*#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int add(char str[],int len)
{
	int is_overflow = 0;
	int is_add = 0;
	int i = 0;
	for (i = len - 1; i >= 0; i--)
	{
		if (i == len - 1)
		{
			str[i]++;
			if((len==1)&&(str[0]== 10))
			{
				is_overflow = 1;
				break;
			}
	    	else	if (str[i] == 10)
			{
				str[i] = 0;
				is_add = 1;
			}
		}
		else if (i == 0)
		{
			if (str[i] + is_add == 10)
			{
				is_overflow = 1;
				break;
			}
			else
				str[i]+=is_add;
		}
		else
		{
			if (str[i] + is_add == 10)
			{
				str[i] = 0;
				is_add = 1;
			}
			else
			{
				str[i] += is_add;
				break;
			}
		} 
		
	}
	return is_overflow;

}
void print(char str[], int len)
{
	int i = 0;
	int flag = 1;
	for (i = 0; i < len; ++i)
	{
		if (flag&&(str[i] == 0))
		{
			continue;
		}
		else
			flag = 0;
		if (flag == 0)
			printf("%d", str[i]);
	}
	printf("\n");
}
int main()
{
	char arr[1];
	int len = sizeof(arr) / sizeof(arr[0]);
	memset(arr, 0, len);
	while (!add(arr, len))
	{
		print(arr, len);
	}
	system("pause");
	return 0;
}
*/
//递归
/*#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void print(char str[], int len)
{
	int i = 0;
	int flag = 1;
	for (i = 0; i < len; ++i)
	{
		if (flag&&(str[i] == 0))
		{
			continue;
		}
		else
			flag = 0;
		if (flag == 0)
			printf("%d", str[i]);
	}
	printf("\n");
}
void  add(char  str[],int  len,int  index)
{
	  int  i=0;
     if(index==len)  
    {  
        print(str,len);  
        return;  
    }  
    for(i=0; i<10; i++)  
    {  
        str[index]=i;  
        add(str, len, index+1);   
    }  
}
int main()
{
	char arr[2];
	int len = sizeof(arr) / sizeof(arr[0]);
	memset(arr, 0, len);
	add(arr,len,0);
	//system("pause");
	return 0;
}*/