C语言打印“回”形图案。。。没有思路额
答案:4 悬赏:0 手机版
解决时间 2021-01-15 09:19
- 提问者网友:动次大次蹦擦擦
- 2021-01-15 04:34
C语言打印“回”形图案。。。没有思路额
最佳答案
- 五星知识达人网友:拾荒鲤
- 2021-01-15 05:12
#include
#include
int main(int argc, char *argv[])
{
int a[10][10]={0},i,j=0,k,n,s,b,c=0;
printf("请输入n:");
scanf("%d",&n);
for(i=0;i a[0][i]=i+1;
s=a[0][--i];
s++;
for(k=1;k {b=n-k;
if(j {for(j=j+1;c {
a[j][i]=s;
}j--;c=0;}
else
{for(j=j-1;c {
a[j][i]=s;
}j++;c=0;}
if(i {for(i=i+1;c {
a[j][i]=s;
}i--;c=0;}
else
{for(i=i-1;c {
a[j][i]=s;}
i++;c=0; }
}
for(j=0;j {for(i=0;i printf("%3d",a[j][i]);
printf("\n");}
system("PAUSE");
return 0;
}
#include
int main(int argc, char *argv[])
{
int a[10][10]={0},i,j=0,k,n,s,b,c=0;
printf("请输入n:");
scanf("%d",&n);
for(i=0;i
s=a[0][--i];
s++;
for(k=1;k
if(j
a[j][i]=s;
}j--;c=0;}
else
{for(j=j-1;c {
a[j][i]=s;
}j++;c=0;}
if(i
a[j][i]=s;
}i--;c=0;}
else
{for(i=i-1;c {
a[j][i]=s;}
i++;c=0; }
}
for(j=0;j
printf("\n");}
system("PAUSE");
return 0;
}
全部回答
- 1楼网友:举杯邀酒敬孤独
- 2021-01-15 07:53
可以去学习下点阵法输出文字的原理,依此可以解决这个问题。图形的编码建议采用位来储存,如果对内存空间无要求可以用数组方便一点。
- 2楼网友:渊鱼
- 2021-01-15 06:54
#include "stdio.h"
#define N 6
int a[N][N],count=1;
void quan(int n,int s)
{
int i=s,j;
for(j=s;j a[i][j]=count++;
j--;
for(i=s+1;i a[i][j]=count++;
i--;
for(j=s+n-2;j>=s;j--)
a[i][j]=count++;
j++;
for(i=s+n-2;i>=s+1;i--)
a[i][j]=count++;
}
void main()
{
int n=N,s=0,i,j;
for(i=1;i<=(N+1)/2;i++)
{ quan(n,s);
n-=2;
s++;
}
for(i=0;i { for(j=0;j printf("%3d",a[i][j]);
printf("\n");
}
}
望采纳 谢谢~ 不懂可以追问追问不能编译啊
我用的dev c++编的
#define N 6
int a[N][N],count=1;
void quan(int n,int s)
{
int i=s,j;
for(j=s;j
j--;
for(i=s+1;i
i--;
for(j=s+n-2;j>=s;j--)
a[i][j]=count++;
j++;
for(i=s+n-2;i>=s+1;i--)
a[i][j]=count++;
}
void main()
{
int n=N,s=0,i,j;
for(i=1;i<=(N+1)/2;i++)
{ quan(n,s);
n-=2;
s++;
}
for(i=0;i
printf("\n");
}
}
望采纳 谢谢~ 不懂可以追问追问不能编译啊
我用的dev c++编的
- 3楼网友:有你哪都是故乡
- 2021-01-15 06:05
#include
#define N 5
void main()
{
int a[N][N];
int i,j,m,t;
t=1;
for(m=1;m<(N+1)/2;m++)
{
i=m-1;
for(j=m-1;j<(N-m);j++)
a[i][j]=t++;
for(i=m-1;i<(N-m);i++)
a[i][j]=t++;
for(j=N-m;j>m-1;j--)
a[i][j]=t++;
for(i=N-m;i>m-1;i--)
a[i][j]=t++;
}
a[N/2][N/2]=t;
for(i=0;i {
for(j=0;j printf("%4d",a[i][j]);
printf("\n");
}
getchar();
}追问这是用数组做的额。。。。
原题“让我们不用数组,来做出它”;
不过是对的,
#define N 5
void main()
{
int a[N][N];
int i,j,m,t;
t=1;
for(m=1;m<(N+1)/2;m++)
{
i=m-1;
for(j=m-1;j<(N-m);j++)
a[i][j]=t++;
for(i=m-1;i<(N-m);i++)
a[i][j]=t++;
for(j=N-m;j>m-1;j--)
a[i][j]=t++;
for(i=N-m;i>m-1;i--)
a[i][j]=t++;
}
a[N/2][N/2]=t;
for(i=0;i
for(j=0;j
printf("\n");
}
getchar();
}追问这是用数组做的额。。。。
原题“让我们不用数组,来做出它”;
不过是对的,
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯