C语言 逆向输出数字

来源:百度知道 编辑:UC知道 时间:2024/05/05 18:57:03
输入:4
输出:
4
65
987
4321

输入:3
输出:
3
45
678
9123

也就是输入单数:正向输出
输入双数:逆向输出
不一定是输出10个数
但是算法一定要说清楚
别用栈和链表,我大1,数据结构自学困难的说...

如果用数组和循环搞定并且步骤解释清楚,加分100~!
谢谢了!~
声明一下这个问题不是作业或者考试题,想要借此鄙视本人的自重
不懂问问行了吧,还是希望有人能用数组循环解决这下的难题,谢谢了!

#include "stdio.h"
int main()
{
int n,i,j,a;
scanf("%d",&n);
if(n%2==1)//如果输入的是奇数
{
for(i=0;i<4;i++) //输出是4行
{
for(j=0;j<=i;j++) //每行输出i+1个数
{
printf("%d",n);
if(++n==10) n=1;//输出9后,下一个是1
}
printf("\n");//输出1行后换行
}
}
else//输入的是偶数
{
for(i=0;i<4;i++)//输出4行
{
for(j=0;j<=i;j++)//每行输出i+1个数
{
printf("%d",n);
if(--n==0) n=9; //输出1后直接跳到9
}
printf("\n");
n+=2*i+3;
//以4为例,输出第1行后,n变成3,所以要加上2*0+3变成6
//输出第2行后,n变成4,加上2*1+3变成9
if(n>=10) n-=9;
//输出第3行后,n变成6,加上2*2+3变成13,减去9后变成4
}
}
}

#include<stdio.h>
void print(int istart,int imode,int ilen)
{
int i;
if(imode==1)
{//偶数则反向打印
for(i=1;i<=ilen;i++)
printf("%d",(istart+i)%10);
}
else