您的位置:首页 > 其它

打印输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999。

2015-09-19 16:04 295 查看
注意是否溢出
//字符串
/*#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;
}*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息