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");
}
}
'프로그래밍랩' 카테고리의 다른 글
프로그래밍랩 9주차 (0) | 2024.11.07 |
---|---|
[프로그래밍 랩] C언어 복습 문제 4 (0) | 2024.10.25 |
[프로그래밍 랩] C언어 복습 문제 5 (0) | 2024.10.25 |
[프로그래밍 랩] C언어 복습 문제 3 (0) | 2024.10.18 |
[프로그래밍 랩] C언어 복습 문제 1 (0) | 2024.10.18 |