for문 여러번을 사용해서
입력한 숫자 만큼 별이 오른쪽부터 나오게 하는 함수를 만든다.
int main (void)
{
int x=0,y;
int a, b;
int f=1;
printf("수입력:");
scanf("%d",&x);
for(a=0; a<x;a++)
{
for(y=0; y<f; y++)
{
for(b=1; b<x; b++)
{
printf(" ");
}
printf("*");
}
printf("\n");
f++;
}
}
가장 하위 단 에 띄어쓰기가 계속 반복됨.
int main (void)
{
int x=0,y;
int a, b;
int f=1;
int z=1;
printf("수입력:");
scanf("%d",&x);
for(a=0; a<x;a++)
{
for(y=0; y<f; y++)
{
for(b=z; b<x; b++)
{
printf(" ");
}
z=x;
printf("*");
}
printf("\n");
f++;
z=1;
}
띄어쓰기 횟수제약을 주기위해 z 함수를 x 로 같게해줌.
z 가 계속 1인 상태라 처음 띄어쓰기빼고 안됨.
int main (void)
{
int x=0,y;
int a, b;
int f=1;
int z=1;
printf("수입력:");
scanf("%d",&x);
for(a=0; a<x;a++)
{
for(y=0; y<f; y++)
{
for(b=z; b<x; b++)
{
printf(" ");
}
printf("*");
}
printf("\n");
f++;
z++;
}
띄어 쓰기가 줄면서하긴하는데., 여전히 가장 안쪽 for문이 여러번..
int main (void)
{
int x=0,y;
int a, b, c;
int f=1;
int z=1;
printf("수입력:");
scanf("%d",&x);
for(a=0; a<x;a++)
{
for(y=0; y<f; y++)
{
for(b=z; b<x; b++)
{
printf(" ");
}
c=z;
z=x;
printf("*");
}
printf("\n");
f++;
z=c;
z++;
}
*출력 for문에서c=z 가 한번더돌면서 z=x가된 z 가 c가되버림..
=> c=z를 가장 밖의 for 문첫번째에 옮김
for(int a=0; a<x; a++)
이런식으로 적으면 변수줄일수있어영
라는 팁을 얻음.
int main (void)
{
int x=0, c;
int f=1;
int z=1;
printf("수입력:");
scanf("%d",&x);
for(int a=0; a<x;a++)
{
c=z;
for(int y=0; y<f; y++)
{
for(int b=z; b<x; b++)
{
printf(" ");
}
z=x;
printf("*");
}
printf("\n");
f++;
z=c;
z++;
}
코드가 더러우면 어떰.. 일단 성공의 의의를 !!
int main (void)
{
int x=0;
printf("수입력:");
scanf("%d",&x);
for(int a=0; a<x;a++)
{
for(int b=a; b<x-1; b++)
{
printf(" ");
}
for(int z=x-a; z<=x; z++)
{
printf("*");
}
printf("\n");
}
}
훨씬 간단하고 효율적이다...