#include <stdio.h>
#include <stdbool.h>
#include <stdint.h>
void get_your_info(char* name, int* pad) {
printf("이름을 입력하세요>");
gets(name);
printf("공백의 수를 입력하세요>");
scanf_s("%d", pad);
}
int main() {
char myName[20];
int pad, rows, stars;
get_your_info(myName, &pad);
//printf("%s %d\n", yourName,pad);
//printf("size : %d %d\n", strlen("Hello,"), strlen(myName));
rows = 2 * pad + 3;
stars = strlen("Hello,") + strlen(myName) + 2 * pad + 2;
for (size_t i = 0; i < rows; i++){
//printf("%d :", i);
if (i == 0 || i == rows - 1) {
for (int star = 0; star < stars;star++) {
printf("*");
}
printf("\n");
}
else if (i == pad + 1) {
int c = 0;
while (c != stars) {
if (c == pad + 1) {
printf("%s%s", "Hello,", myName);
c += strlen("Hello,")+strlen(myName);
}
else {
if (c == 0 || c == stars-1) {
printf("*");
}
else {
printf(" ");
}
c++;
}
}
printf("\n");
}
else {
for (int star = 0; star < stars;star++) {
if (star == 0 || star == stars - 1)
printf("*");
else
printf(" ");
}
printf("\n");
}
}
return 0;
}
# 더 줄여서
#include <stdio.h>
#include <stdbool.h>
#include <stdint.h>
void get_your_info(char* name, int* pad) {
printf("이름을 입력하세요>");
gets(name);
printf("공백의 수를 입력하세요>");
scanf_s("%d", pad);
}
int main() {
char myName[20];
int pad, rows, stars;
get_your_info(myName, &pad);
rows = 2 * pad + 3;
stars = strlen("Hello,") + strlen(myName) + 2 * pad + 2;
for (size_t i = 0; i < rows; i++){
int c = 0;
while (c != stars) {
if (i == pad + 1 && c == pad + 1) {
printf("%s%s", "Hello,", myName);
c += (strlen("Hello,")+strlen(myName));
}
else {
if (i==0 || i==rows-1 || c == 0 || c == stars-1) {
printf("*");
}
else {
printf(" ");
}
c++;
}
}
printf("\n");
}
return 0;
}
'PROGRAM > C' 카테고리의 다른 글
10진수를 2진수 16진수로 출력하기 (0) | 2021.08.17 |
---|---|
구구단 가로로 출력 + 제외할 단 입력 (0) | 2020.06.14 |