永发信息网

C语言问题。、

答案:2  悬赏:20  手机版
解决时间 2021-05-19 02:03
  • 提问者网友:几叶到寒
  • 2021-05-18 07:13
请问 我如果要用FOR循环的嵌套 来输入由" * "组成的五角星图形呢?
最佳答案
  • 五星知识达人网友:琴狂剑也妄
  • 2021-05-18 08:05

#include "stdio.h"


void print(int(*p)[62])
{
int i,i2=0,j,j2=49;
for(i=0;i<20;i++)
{
printf(" ");
for(j=0;j<62;j++)
{
if(i==i2||i==i2+1)
if(j>j2&&j<j2+13)
continue;
if(*(*(p+i)+j)==1||*(*(p+i)+j)==2)
printf("*");
else if(*(*(p+i)+j)==3||*(*(p+i)+j)==4)
printf("*");
else
printf(" ");
}
printf(" \n");
}


}
void star(int (*p)[62],int i,int j,int n)
{
int k,l,a,b;
for(k=0;k<18;k++,i++,j++)
{
*(*(p+i)+j)=n;
if(k>7&&k<11)
*(*(p+i)+j)=0;
}
i--,j--;
for(k=0;k<11;k++,i--,j-=4)
{
*(*(p+i)+j)=n;
if(k>4&&k<7)
*(*(p+i)+j)=0;
}
i++,j+=4;
for(k=0;k<47;k++,j++)
{
*(*(p+i)+j)=n;
}
j--;
for(k=0;k<11;k++,i++,j-=4)
{
*(*(p+i)+j)=n;
if(k>3&&k<6)
*(*(p+i)+j)=0;
}
i--,j+=4;
for(k=0;k<18;k++,i--,j++)
{
*(*(p+i)+j)=n;
if(k>6&&k<10)
*(*(p+i)+j)=0;
}
i++,j--;
a=i,b=j;
i++,j++;
for(k=1;k<17;k++,i++,j++)
for(l=j-1;*(*(p+i)+l)!=n;l--)
*(*(p+i)+l)=n+1;
i=a,j=b;
i++,j--;
for(k=1;k<17;k++,i++,j--)
for(l=j+1;*(*(p+i)+l)!=n;l++)
*(*(p+i)+l)=n+1;
}
int main()
{
int a[20][62]={0};
star(a,2,25,3);
print(a);
return 0;
}

全部回答
  • 1楼网友:玩世
  • 2021-05-18 09:24

你就是写一个打印的自函数,让后给他传要打印的个数,这样就可以出来了

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯