728x90
✅ 문제 : 반복문
- 1~10까지 출력하기
- 구구단 출력하기
- 1~10까지의 합 구하기
- n! 구하기(overflow 발생지점 파악)
- 약수 출력하기
- 패턴 출력
바로 코드부터...( •̀ ω •́ )✧
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//1~10까지 출력하는 함수
void print_1_10(int i) {
for (i = 1; i < 11; i++) {
printf("%d ", i);
}
printf("\n");
}
//구구단 출력하는 함수
void multi(int a, int i) {
printf("구구단을 출력합니다. \n출력할 단 : ");
scanf("%d", &a);
printf("----%d단----\n", a);
for (i = 1; i < 10; i++)
printf("%d X %d = %d\n", a, i, a * i);
}
//1~10까지의 합 구하는 함수
void sum_cal(int i, int sum) {
printf("1~10까지의 합을 출력합니다.\n");
for (i = 1; i <= 10; i++) sum += i;
printf("%d\n", sum);
}
// n! 구하는 함수
void factorial(int i, int n) {
printf("n!의 값을 구합니다.");
int a = 1;
scanf("%d", &n);
for (i = 1; i <= n; i++)
a *= i;
printf("%d!=%d\n", n, a);
}
//약수 구하는 함수
void aliquot(int i , int n) {
printf("약수를 구합니다.\n");
for (n = 1; n <= 10; n++)
{
printf("%d의 약수는 ", n);
for (i = 1; i <= n; i++)
{
if (n % i == 0)
printf("%d ", i);
}
printf("\n");
}
}
//직각삼각형1 출력하는 함수
void tri_1(int i, int j) {
// i=줄, j=별
printf("직각 삼각형을 출력합니다.\n단 : 5\n");
for (i = 1; i <= 5; i++)
{
for (j = 1; j <= i; j++)
{
printf("*");
}
printf("\n");
}
}
//직각삼각형2 출력하는 함수
void tri_2(int i, int j) {
printf("직각 삼각형을 출력합니다.\n단 : 10\n");
// i=줄, j=별
for (i = 1; i <= 10; i++) {
for (j = 10; j >= i; j--)
{
printf(" ");
}
for (j = 1; j <= i; j++)
{
printf("*");
}
printf("\n");
}
}
//직각삼각형3 출력하는 함수
void tri_3(int i, int j) {
printf("직각 삼각형을 출력합니다. \n단 : 10\n");
// i=줄, j=별
for (i = 10; i >= 1; i--)
{
for (j = 1; j <= 10 - i; j++)
printf(" ");
for (j = 1; j <= i; j++)
printf("*");
printf("\n");
}
}
//직각삼각형4 출력하는 함수
void tri_4(int i, int j) {
printf("직각 삼각형을 출력합니다. \n단 : 10\n");
// i=줄, j=별
for (i = 1; i <= 10; i++)
{
for (j = 1; j <= 10 - i; j++)
printf("*");
printf("\n");
}
}
//피라미드 출력하는 함수
void pyramid(int i, int j) {
printf("피라미드를 출력합니다. \n단 : 10\n");
// i=줄, j=별
for (i = 1; i <= 10; i++)
{
for (j = 1; j <= 10 - i; j++)
printf(" ");
for (j = 1; j <= 2 * i - 1; j++)
printf("*");
printf("\n");
}
}
int main() {
int a = 0, i = 0, sum = 0, n = 0, j = 0;
//1~10까지 출력하기
print_1_10(i);
//구구단 출력하기
multi(a, i);
// 1~10까지의 합 구하기
sum_cal(i, sum);
// n! 구하기 (overflow 발생시점 파악)
factorial(i, n);
// 약수 출력하기
aliquot(i, n);
//패턴 출력
//직각삼각형 출력1
tri_1(i, j);
//직각삼각형 출력2
tri_2(i, j);
//직각삼각형 출력3
tri_3(i, j);
//직각삼각형 출력4
tri_4(i , j);
//피라미드 출력
pyramid(i, j);
return 0;
}
따로 솔루션 파일들 만들기 귀찮아서 하나의 솔루션에 함수로 표현해 봄!
int형으로 리턴 값 받아서 main에서 다시 출력하고 이 과정이...너무 귀찮아서 싹 다 생략하고 void로 출력까지 다 되게 만들어버림
잘 돌아간다...
지금 출력 값들 확인해보니...
직각 삼각형 만들 때...
단 개수가 부족한 게 있고 막 공백이 생겨있음
그리고 문제에서 의도하는 게 단을 입력 받아 출력하는 것인 듯 해서
그 기능도 추가함!
수정수정...
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//1~10까지 출력하는 함수
void print_1_10(int i) {
for (i = 1; i < 11; i++) {
printf("%d ", i);
}
printf("\n");
}
//구구단 출력하는 함수
void multi(int a, int i) {
printf("구구단을 출력합니다. \n출력할 단 : ");
scanf("%d", &a);
printf("----%d단----\n", a);
for (i = 1; i < 10; i++)
printf("%d X %d = %d\n", a, i, a * i);
}
//1~10까지의 합 구하는 함수
void sum_cal(int i, int sum) {
printf("1~10까지의 합을 출력합니다.\n");
for (i = 1; i <= 10; i++) sum += i;
printf("%d\n", sum);
}
// n! 구하는 함수
void factorial(int i, int n) {
printf("n!의 값을 구합니다.");
int a = 1;
scanf("%d", &n);
for (i = 1; i <= n; i++)
a *= i;
printf("%d!=%d\n", n, a);
}
//약수 구하는 함수
void aliquot(int i , int n) {
printf("약수를 구합니다.\n");
for (n = 1; n <= 10; n++)
{
printf("%d의 약수는 ", n);
for (i = 1; i <= n; i++)
{
if (n % i == 0)
printf("%d ", i);
}
printf("\n");
}
}
//직각삼각형1 출력하는 함수
void tri_1(int i, int j, int n) {
// i=줄, j=별, n=단
printf("직각 삼각형을 출력합니다.\n단 : ");
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
for (j = 1; j <= i; j++)
{
printf("*");
}
printf("\n");
}
}
//직각삼각형2 출력하는 함수
void tri_2(int i, int j, int n) {
printf("직각 삼각형을 출력합니다.\n단 : ");
scanf("%d", &n);
// i=줄, j=별, n=단
for (i = 1; i <= 10; i++) {
for (j = 9; j >= i; j--)
{
printf(" ");
}
for (j = 1; j <= i; j++)
{
printf("*");
}
printf("\n");
}
}
//직각삼각형3 출력하는 함수
void tri_3(int i, int j, int n) {
printf("직각 삼각형을 출력합니다. \n단 : ");
scanf("%d", &n);
// i=줄, j=별, n=단
for (i = n; i >= 1; i--)
{
for (j = 0; j < n - i; j++)
printf(" ");
for (j = 1; j <= i; j++)
printf("*");
printf("\n");
}
}
//직각삼각형4 출력하는 함수
void tri_4(int i, int j, int n) {
printf("직각 삼각형을 출력합니다. \n단 : ");
scanf("%d", &n);
// i=줄, j=별, n=단
for (i = 0; i < n; i++)
{
for (j = 1; j <= n - i; j++)
printf("*");
printf("\n");
}
}
//피라미드 출력하는 함수
void pyramid(int i, int j, int n) {
printf("피라미드를 출력합니다. \n단 : ");
scanf("%d", &n);
// i=줄, j=별, n=단
for (i = 1; i <= n; i++)
{
for (j = 1; j <= n - i; j++)
printf(" ");
for (j = 1; j <= 2 * i - 1; j++)
printf("*");
printf("\n");
}
}
int main() {
int a = 0, i = 0, sum = 0, n = 0, j = 0;
//1~10까지 출력하기
print_1_10(i);
//구구단 출력하기
multi(a, i);
// 1~10까지의 합 구하기
sum_cal(i, sum);
// n! 구하기 (overflow 발생시점 파악)
factorial(i, n);
// 약수 출력하기
aliquot(i, n);
//패턴 출력
//직각삼각형 출력1
tri_1(i, j, n);
//직각삼각형 출력2
tri_2(i, j, n);
//직각삼각형 출력3
tri_3(i, j, n);
//직각삼각형 출력4
tri_4(i , j, n);
//피라미드 출력
pyramid(i, j, n);
return 0;
}
수정하는 데 엄청 걸렸다...
역시 별 찍는 건 어렵다
끝
'ProgrammingLanguage > C언어' 카테고리의 다른 글
C언어 | 동적 메모리 할당 예제 (0) | 2021.02.16 |
---|---|
C언어 | continue문 예제 (0) | 2021.02.14 |
C언어 | if else if 예제 (0) | 2021.02.14 |
C언어 | 무한루프 예제 (0) | 2021.02.14 |
C언어 | 함수 포인터 예제 (0) | 2021.02.14 |