대학 과제
[C] C프로그래밍 과제 모음 (3)
Hicecream
2023. 4. 27. 18:28
2022년 C언어 수업 과제 입니다.
1. 무한 반복문으로 Q, q 알파벳 찾는 프로그램
#include <stdio.h>
int main(void)
{
int cnt = 0;
char alph;
while (1) {
printf("\n알파벳 입력 : ");
scanf_s("%c", &alph, sizeof(alph));
getchar();
cnt++;
if (alph == 'q' || alph == 'Q') {
printf("총 %d회 실행하여 알파벳을 찾았습니다.\n", cnt);
printf("찾은 알파벳은 대소 문자 구별 없이 '%c' 입니다.\n", alph);
break;
}
else
printf("찾는 알파벳이 아닙니다. 알파벳을 다시 입력하세요.\n");
}
return 0;
}
2. 1부터 입력한 정수까지 누적 합 구하기
#include <stdio.h>
int main(void)
{
int num, cnt = 0, hap = 0;
re:
printf("정수값 입력 : ");
scanf_s("%d", &num);
if (num < 0) {
printf("음의 정수값 %d는(은) 허용하지 않습니다.\n", num);
printf("양의 정수값을 다시 입력하세요.\n");
goto re;
}
else {
do {
hap += cnt;
cnt++;
} while (cnt <= num);
}
printf("1부터 %d까지 누적 합계는 %d\n", num, hap);
return 0;
}
3. 무한 반복문으로 구구단 출력하는 프로그램
#include <stdio.h>
int main(void)
{
int su, dan, gob, cnt =1;
char alph;
printf("<%d 회 실행>\n", cnt);
for (su = 9; su >= 1; su--) {
for (dan = 9; dan >= 2; dan--) {
gob = dan * su;
printf("%d x %d = %02d ", dan, su, gob);
}
printf("\n");
}
re:
do {
printf("프로그램을 다시 실행하시겠습니까? (Y/N) : ");
scanf_s("%c", &alph, sizeof(alph));
getchar();
switch (alph) {
case 'y':
case 'Y':
printf("<%d 회 실행>\n", ++cnt);
for (su = 9; su >= 1; su--) {
for (dan = 9; dan >= 2; dan--) {
gob = dan * su;
printf("%d x %d = %02d ", dan, su, gob);
}
printf("\n");
}
goto re;
case 'n':
case 'N':
printf("총 %d회 실행 후 프로그램을 종료합니다.\n", cnt);
return 0;
default:
printf("입력한 알파벳 \"%c\"는(은) 허용하지 않습니다.\n", alph);
printf("알파벳을 다시 입력하세요.\n");
goto re;
}
} while (1);
return 0;
}
4. 연, 월, 일을 입력받아 그 해 1월 1일부터 며칠 째인지 구하는 프로그램
#include <stdio.h>
int main(void)
{
int yy, mm, dd;
scanf_s("%d %d %d", &yy, &mm, &dd);
switch (mm) {
case 12:
dd += 31;
case 11:
dd += 31;
case 10:
dd = 30 + dd;
case 9:
dd = 31 + dd;
case 8:
dd = 31 + dd;
case 7:
dd = 30 + dd;
case 6:
dd = 31 + dd;
case 5:
dd = 30 + dd;
case 4:
dd = 31 + dd;
case 3:
dd = 28 + dd;
case 2:
dd = 31 + dd;
case 1:
printf("%d", dd);
}
return 0;
}
// 비효율적인 코드
/*case 1:
dd = dd;
printf("%d", dd);
break;
case 2:
dd = 31 + dd;
printf("%d", dd);
break;
case 3:
dd = 31 + 28 + dd;
printf("%d", dd);
break;
case 4:
dd = 31 + 28 + 31 + dd;
printf("%d", dd);
break;
case 5:
dd = 31 + 28 + 31 + 30 + dd;
printf("%d", dd);
break;
case 6:
dd = 31 + 28 + 31 + 30 + 31 + dd;
printf("%d", dd);
break;
case 7:
dd = 31 + 28 + 31 + 30 + 31 + 30 + dd;
printf("%d", dd);
break;
case 8:
dd = 31 + 28 + 31 + 30 + 31 + 30 + 31 + dd;
printf("%d", dd);
break;
case 9:
dd = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + dd;
printf("%d", dd);
break;
case 10:
dd = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + dd;
printf("%d", dd);
break;
case 11:
dd = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + dd;
printf("%d", dd);
break;
case 12:
dd = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 31 + dd;
printf("%d", dd);
break;
}*/