1. 다음처럼 입력한 정수 높이의 삼각형을 출력하는 프로그램을 작성하시오.
답:
//삼각형 출력 //입력 // 5 - n //출력 // * 1- 공백 4, 별1, 개행 // *** 2- 공백 3, 별3, 개행 // ***** 3- 공백2, 별5, 개행 // ******* 4- 공백1, 별7, 개행 // ********* 5- 공백0, 별9, 개행 //공백 = n-line //별 = 2*line -1 //개행=1 #include <stdio.h> int main(void) { int n; int line,space,star; scanf_s("%d",&n);//입력 for(line=1;line<=n;line++)//n개 라인 { for(space=1;space<=(n-line);space++)//공백 n-line개 { putchar(' '); } for(star =1; star<=(2*line -1); star++)//별 2*line -1개 { putchar('*'); } putchar('\n');//개행 } return 0; }
2. 다음처럼 입력한 정수의 높이에 맞게 다이아몬드를 출력하는 프로그램을 작성하시오.
답:
// 다이아몬드 출력 // 입력 // 5 - n //출력 // * 1- 공백 4, 별1, 개행 // *** 2- 공백 3, 별3, 개행 // ***** 3- 공백2, 별5, 개행 // ******* 4- 공백1, 별7, 개행 // ********* 5- 공백0, 별9, 개행 // ******* 4- 공백1, 별7, 개행 // ***** 3- 공백2, 별5, 개행 // *** 2- 공백 3, 별3, 개행 // * 1- 공백 4, 별1, 개행 //line:1~n //공백 = n-line //별 = 2*line -1 //개행=1 //line:n-1 ~ 1 //공백 = n-line //별 = 2*line -1 //개행=1 #include <stdio.h> int main(void) { int n; int line,space,star; scanf_s("%d",&n);//입력 for(line=1;line<=n;line++)//line: 1~n { for(space=1;space<=(n-line);space++)//공백 n-line개 { putchar(' '); } for(star =1; star<=(2*line -1); star++)//별 2*line -1개 { putchar('*'); } putchar('\n');//개행 } for(line=n-1; line>=1;line--)//line:n-1 ~ 1 { for(space=1;space<=(n-line);space++)//공백 n-line개 { putchar(' '); } for(star =1; star<=(2*line -1); star++)//별 2*line -1개 { putchar('*'); } putchar('\n');//개행 } return 0; }
3. 다음처럼 입력한 정수의 높이에 맞게 산봉우리를 출력하는 프로그램을 작성하시오.
답:
//산봉우리 출력 //입력 //5 - n //출력 // * 1 공백(9+9),별1, 개행 // *** 2 공백(9+8), 별3, 개행 // ***** 3 공백(9+7),별5, 개행 // ******* 4 공백(9+6), 별7, 개행 // ********* 5 공백(9+5), 별9, 개행 // * *********** * 6 공백4, 별1, 공백4, 공백4, 별11, 공백4, 공백4, 별1, 개행 // *** ************* *** 7 공백3, 별3, 공백3, 공백3, 별13, 공백3, 공백3, 별3, 개행 // ***** *************** ***** 8 공백2, 별5, 공백2, 공백2, 별15, 공백2, 공백2, 별5, 개행 // ******* ***************** ******* 9 공백1, 별7, 공백1, 공백1, 별17, 공백1, 공백1, 별7, 개행 // ************************************* 10 공백0, 별9, 공백0, 공백0, 별19, 공백0, 공백 0, 별9,개행 //line:1~2*n //조건(line<=n)이 참일 때 //공백= (2*n-1)+(2*n-line) = 4*n -1-line //별 = 2*line-1 //개행 //조건(line<=n)이 거짓일 때 //공백 = 2*n-line //별 = 2*(line-n)-1 //공백 = 2*(2*n-line) //별 = 2*line-1 //공백 = 2*(2*n-line) //별 = 2*(line-n)-1 //개행 #include <stdio.h> int main(void) { int n; int line,space,star; scanf_s("%d",&n);//입력 for(line=1;line<=2*n;line++)//line: 1~2n { if(line<=n)//line is 1~n { for(space=1;space<=(4*n - 1 - line);space++)//공백 4*n - 1 - line개 { putchar(' '); } for(star =1; star<=(2*line -1); star++)//별 2*line -1개 { putchar('*'); } putchar('\n');//개행 } else//line is n+1 ~ 2n { for(space=1;space<=(2*n-line);space++)//공백 2n-line개 { putchar(' '); } for(star =1; star<=2*(line-n)-1; star++)//별 2*(line-n)-1개 { putchar('*'); } for(space=1; space<=(2*(2*n-line));space++)//공백 2*(2*n-line) 개 { putchar(' '); } for(star =1; star<=(2*line-1); star++)//별 2*line-1개 { putchar('*'); } for(space=1; space<=(2*(2*n-line));space++)//공백 2*(2*n-line) 개 { putchar(' '); } for(star =1; star<=2*(line-n)-1; star++)//별 2*(line-n)-1개 { putchar('*'); } putchar('\n');//개행 } } return 0; }