프로그래밍

 3198, 1/160 회원가입  로그인  
   izero
   C언어 반복제어문 질문 2

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=6314 [복사]


1)문제

자연수 n을 입력받아 "출력 예"와 같이 출력되는 프로그램을 작성하시오.
주의! '*'과 '*'사이에 공백이 없고, 줄사이에도 빈줄이 없다.

입력 예: 3

출력 예:

*
**
***
**
*

2)코드

  1 #include <stdio.h>
  2
  3 int main(void)
  4 {
  5         int n;
  6         int i,j,k;
  7
  8         printf("enter a number:");
  9         scanf("%d",&n);
10
11         for(i=1;i<=n;i++){
12                 printf("*\n");
13                 for(j=0;j<i;j++){
14                         if(i==n){
15                                 break;
16                         }
17                         printf("*");
18                         }
19                 }
20         for(k=2;k<=n;k++){
21                 printf("*");
22                 for(j=n;j>k;j--){
23                         printf("*");
24                 }
25                 printf("\n");
26         }
27         return 0;
28 }      

위에 코드를 실행하면 일단 보기와 같이 출력은 됩니다.
그리고 여러 삽질을 통해 겨우 짠코드인데요.
위에 코드가 조금 조잡하다고 느껴져서요.
더 간략하게 코드 작성할 방법이 있을가요?


  Hit : 5049     Date : 2013/03/13 01:17



    
teamo1111 #include <stdio.h>

int main()
{
int i,j,n;

printf("숫자를 입력해주세요 : ");
scanf("%d",&n);

for(i=0;i<=n;++i){
for(j=0;j<i;++j){
printf("*");}
printf("\n");}

for(i=n;i>1;--i){
for(j=i;j>1;--j){
printf("*");}
printf("\n");}


scanf("%d");
}



이렇게하니까 되네요 ~
저도 c언어 조금씩 공부하고있는데 이렇게 프로그램 하나씩 짤때마다 재밌네요 ㅋㅋ
2013/03/13  
izero 아.. 저런 방법도 있네요 제것보다 간략하고 좋아보이는 코드군요 ㅠ
이런 프로그램 짜시기 전에 flow chart 만드시고 하시나요??
저는 그냥 짧게 생각하고 테스트하고 고치고 반복해서 만들어서 다시 시도해보면 오래걸려서요..
2013/03/13  
teamo1111 아뇨! 첫번째 for문은 전에도 한번 해봤거든요ㅎㅎ
코드짜기전에 이렇게하면 되겠구나 생각은한데 차트는 직접 안짜봤네요ㅜㅠ
말씀들으니까 이제부터 계획을 잘짜고 코드를 만들어야겠어요
이런코드야 짧지만 공부하다보면 점점 더 긴코드를 짤텐데 처음부터 습관을 들이는게 중요할것같아요ㅎㅎ
2013/03/13