01. 1 ~ 10까지 화면과 같이 출력하고 합을 구해서 추력하는 프로그램을

(1)  for 문 이용 (2) while 문 이용 (3) do ~ while 이용하여 작성하시오.

#include <stdio.h>

int main() {
	int stnum = 1, ennum = 10, sum = 0, n;
	
	printf("(1) for 사용 : ");
	for (int i = stnum; i <= ennum; i++) {
		printf("%d ", i);
		sum += i;
	}
	printf("sum=%d\n", sum);


	sum = 0;
	n = stnum;
	printf("(2) while 사용 : ");
	while (n <= ennum) {
		printf("%d ", n);
		sum += n;
		n++;
	}
	printf("sum=%d\n", sum);

	sum = 0;
	n = stnum;
	printf("(2) do ~ while 사용 : ");
	do {
		sum += n;
		printf("%d ", n);
		n++;
	} while (n <= 10);
	printf("sum=%d\n", sum);
}

02. oddsum1(n), oddsum2(n), oddsum3(n) 함수는 1 ~ n 까지 홀수만 더하여 그 값을 return 하는 함수이다. 주어진 main() 프로그램을활용하여 (1) ~ (4) 까지 완성하시오.

(1) for 문만 사용해서 oddsum1() 구현

(2) while 문만 사용해서 oddsum2() 구현

(3) 재귀함수로 oddsum3() 구현

(4) 구현한 oddsum1() 함수를 이용하여 다음의 합 SUM을 구하는 프로그램을 작성하시오

SUM = 1 + (1 + 3) + (1+ 3 + 5) + ............ + (1 + 3 + 5 + ..... + 99)

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int oddsum1(int n) {
    int sum = 0;
    for (int i = 1; i <= n; i += 2) {
        sum += i;
    }
    return sum;
}

int oddsum2(int n) {
    int sum = 0, i = 1;
    while (i <= n) {
        sum += i;
        i += 2;
    }
    return sum;
}

int oddsum3(int n) {
    if (n < 1)
        return 0;
    else {
        if (n % 2 == 1)
            return n + oddsum3(n - 2);
        else
            return (n - 1) + oddsum3(n - 3); // return oddsum3(n-1); 도 가능
    }
}


int main() {
    int n = 100;
    int SUM = 0;
    int i;

    printf("(1) for oddsum1(%d) = %d\n", n, oddsum1(n));
    printf("(2) while oddsum2(%d) = %d\n", n, oddsum2(n));
    printf("(3) 재귀 oddsum3(%d) = %d\n", n, oddsum3(n));
    for (int i = 1; i <= n; i += 2) {
        SUM += oddsum1(i);
    }
    printf("(4) SUM = %d\n", SUM);
}

03. 다음과 같이 달력을 출력하는 프로그램을 작성하시오.

(Hint : 7, 14, 21, 28 출력하고 \ n을 출력 ==> if ( i % 7 == 0) printf("\n");)

1월 1일이 월요일이라고 가정하고 화면과 같이 월을 입력하면 그 달의 달력을 출력하는 프로그램을 작성하시오. (1월 ~ 12월 = 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)

#include <stdio.h>

int main() {
	int mdays[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
	int mm, day = 1, days = 0, month, date;

	printf("출력 월을 입력: ");
	scanf("%d", &month);

	mm = month - 1;
	while (mm) {
		days += mdays[mm - 1];
		mm--;
	}

	day = (days + 1) % 7;  //  1일의 요일 = ((그 전까지의 일 수) + (당일날)) % 7 

	printf("일 월 화 수 목 금 토 \n");
	for (int i = 0; i < day; i++)
		printf("   ");

	date = 1;
	for (int i = day; date <= mdays[month - 1]; i++, date++) {

		if (i % 7 == 0 && i != 0)
			printf("\n%2d ", date);
		else
			printf("%2d ", date);
	}
}

04. 다음 프록램과 출력 결과를 참조하여 화면과 같이 출력되록 프로그램 하시오.

#include <stdio.h>

int main() {
	char c1, c2;
	for (c1 = 'A'; c1 <= 'Z'; c1++) {
		for (c2 = 'A'; c2 <= c1; c2++) {
			printf("%c", c2);
		}
		printf("\n");
	}
}

 

 

 

 

 

(1)

 

#include <stdio.h>

int main() {
	char c1, c2;
	for (c1 = 'Z'; c1 >= 'A'; c1--) {
		for (c2 = 'Z'; c2 >= c1; c2--) {
			printf("%c", c2);
		}
		printf("\n");
	}
}

 

 

 

 

(2)

 

#include <stdio.h>

int main() {
	char c1, c2;
	for (c1 = 'Z'; c1 >= 'A'; c1--) {
		for (c2 = 'A'; c2 <= c1; c2++) {
			printf("%c", c2);
		}
		printf("\n");
	}
}

 

 

 

 

(3)

 

#include <stdio.h>

int main() {
	char c1, c2;
	for (c1 = 'A'; c1 <= 'Z'; c1++) {
		for (c2 = 'Z'; c2 >= c1; c2--) {
			printf("%c", c2);
		}
		printf("\n");
	}
}

 

 

 

 

(4)

#include <stdio.h>

int main() {
    for (char c1 = 'A'; c1 <= 'Z'; c1++) {
        int n = 'Z' - c1;
        for (int i = 0; i < n; i++)
            printf("%c", ' ');
        for (char c2 = 'A'; n < 26; n++, c2++)
            printf("%c", c2);
        printf("\n");
    }
}

 

 

 

 

 


 

#include <stdio.h>

int main() {
	for (char c1 = 'Z'; c1 >= 'A'; c1--) {
		int n = 'Z' - c1;
		for (int i = 0; i < n; i++) {
			printf(" ");
		}
		for (char c2 = 'A'; n < 26; n++, c2++) {
			printf("%c", c2);
		}
		printf("\n");
	}
}

+ Recent posts