2022년 C언어 수업 과제 입니다.
1. 포인터 연산자 활용하기
#include <stdio.h>
int main(void)
{
int num1, val;
int* poval;
poval = &num1;
/*
'*' 스타 연산자의 사용법
1. 포인터연산자 선언
2. 포인터 연산자가 가리키는 변수의 저장값
*/
printf("키보드로 정수 1개를 입력하시오 : ");
scanf_s("%d", &num1);
val = *poval;
printf("키보드로 입력한 값이 저장된 주소(16진수 표기) : %x\n", poval);
printf("포인터 변수 *poval에 저장된 값(10진수 표기) : %d\n", val);
printf("포인터 변수 *poval에 저장된 값(10진수 표기) : %d\n", poval);
return 0;
}
2. 정수 3개 입력하고 최댓값 구하기
#include <stdio.h>
int main(void)
{
int num1, num2, num3, max;
printf("키보드로 정수값 3개를 입력하시오(구분자 콤마 사용). : ");
scanf_s("%d, %d, %d", &num1, &num2, &num3);
printf("키보드 입력한 정수값 3개는 %d, %d, %d\n", num1, num2, num3);
// max = (num1 > num2) ? ((num2 > num3) ? num2 : num3) : ((num1 > num3) ? num1 : num3);
max = (num1 > num2) ? num1 : num2;
max = (max > num3) ? max : num3;
printf("그 중에서 최댓값은 %d\n", max);
return 0;
}
3. 포인터 - 변수의 주소값 출력하기
#include <stdio.h>
int main(void)
{
int num1, num2;
int* addr1, * addr2;
addr1 = &num1;
addr2 = &num2;
printf("정수 2개를 입력하시오(구분자는 콤마 사용). : ");
scanf_s("%d, %d", &num1, &num2);
printf("입력한 정수 2개는 %d, %d\n", num1, num2);
printf("%d의 주소값 : %d\n", num1, addr1); // num1의 주소 == addr1의 값
printf("%d의 주소값 : %d\n", num1, &num1); // num1의 주소 == addr1 == &num1도 같은 값
printf("%d의 주소값 : %d\n", num2, addr2);
// 1) 정수값 출력 : num1, num2
// 2) 변수의 주소 : &num1, &num2
// 3) 변수의 주소 : addr1, addr2
// 4) 포인터의 정수값 : *addr1, *addr2
return 0;
}
4. 입력한 문자에 해당하는 유형별(알파벳 대문자, 소문자, 숫자, 기타 문자)로 출력하기
#include <stdio.h>
int main(void)
{
char mj;
printf("문자를 입력하시오 : ");
scanf_s("%c", &mj, sizeof(mj));
if ('A' <= mj && mj <= 'Z')
printf("입력한 %c는(은) \"알파벳 대문자\"입니다.\n", mj);
else if ('a' <= mj && mj <= 'z')
printf("입력한 %c는(은) \"알파벳 소문자\"입니다.\n", mj);
else if (mj >= '0')
printf("입력한 %c는(은) \"숫자\"입니다.\n", mj);
else
printf("입력한 %c는(은) \"기타 문자\"입니다.\n", mj);
return 0;
}
5. 점수 입력하고 해당 학점 출력하기
#include <stdio.h>
int main(void)
{
int a, b;
char* addr;
printf("점수 입력 : ");
scanf_s("%d", &a);
if (0 > a || a > 100) {
printf("입력한 점수 %d는(은) 허용 구간이 아닙니다.\n", a);
printf("프로그램을 다시 실행하세요.\n");
}
else {
b = a / 5;
switch (b)
{
case 20:
case 19:
addr = "A+";
break;
case 18:
addr = "A0";
break;
case 17:
addr = "B+";
break;
case 16:
addr = "B0";
break;
case 15:
addr = "C+";
break;
case 14:
addr = "C0";
break;
case 13:
addr = "D+";
break;
case 12:
addr = "D0";
break;
default:
addr = "F";
break;
}
}
printf("입력한 점수 : %d\n", a);
printf("점수 등급 : %s 학점\n", addr);
return 0;
}
6. 알파벳 입력하고 해당하는 계절 출력하기 (switch문, if~else문)
// switch 문
#include <stdio.h>
int main(void)
{
char season;
printf("계절을 선택할 알파벳 입력 : ");
scanf_s("%c", &season, sizeof(season));
switch (season) {
case 'A':
case 'a':
printf("계절 : 봄\n");
printf("수행 : 꽃을 가꾼다\n");
break;
case 'S':
case 's':
printf("계절 : 여름\n");
printf("수행 : 수영을 한다\n");
break;
case 'D':
case 'd':
printf("계절 : 가을\n");
printf("수행 : 추수를 한다\n");
break;
case 'F':
case 'f':
printf("계절 : 겨울\n");
printf("수행 : 스키를 탄다\n");
break;
default:
printf("허용되지 않는 알파벳입니다.\n");
printf("대소문자 구별 없이 A, S, D, F만 허용됩니다.\n");
printf("프로그램을 다시 시작하세요.\n");
}
return 0;
}
// if~else문
#include <stdio.h>
int main(void)
{
char season;
printf("계절을 선택할 알파벳 입력 : ");
scanf_s("%c", &season, sizeof(season));
if (season == 'A' || season == 'a') {
printf("계절 : 봄\n");
printf("수행 : 꽃을 가꾼다\n");
}
else if (season == 'S' || season == 's') {
printf("계절 : 여름\n");
printf("수행 : 수영을 한다");
}
else if (season == 'D' || season == 'd') {
printf("계절 : 가을\n");
printf("수행 : 추수를 한다\n");
}
else if (season == 'F' || season == 'f') {
printf("계절 : 겨울\n");
printf("수행 : 스키를 탄다\n");
}
else {
printf("허용되지 않는 알파벳입니다.\n");
printf("대소문자 구별 없이 A, S, D, F만 허용됩니다.\n");
printf("프로그램을 다시 시작하세요.\n");
}
return 0;
}
7. 1부터 입력한 정수값까지 홀수의 누적 합계 구하기 (go~to문)
#include <stdio.h>
int main(void)
{
int num, cnt, hap = 0;
reset:
printf("정수값 입력 : ");
scanf_s("%d", &num);
if (num > 0) {
for (cnt = 1; cnt <= num; cnt++)
if ((cnt % 2) == 0)
continue;
else {
hap += cnt;
}
printf("1부터 %d까지 홀수의 누적 합계는 %d\n", num, hap);
}
else {
printf("음의 정수값은 허용하지 않습니다.\n");
printf("양의 정수값을 다시 입력하세요.\n");
goto reset;
}
return 0;
}
8. 1부터 입력한 정수값까지 짝수의 누적 합계 구하기
#include <stdio.h>
int main(void)
{
int num, cnt, hap = 0;
reset:
printf("정수값 입력 : ");
scanf_s("%d", &num);
if (num > 0) {
for (cnt = 0; cnt <= num; cnt++)
if ((cnt % 2) != 0)
continue;
else {
hap += cnt;
}
printf("1부터 %d까지 짝수의 누적 합계는 %d\n", num, hap);
}
else {
printf("음의 정수값 %d는(은) 허용하지 않습니다.\n", num);
printf("양의 정수값을 다시 입력하세요.\n");
goto reset;
}
return 0;
}
'대학 과제' 카테고리의 다른 글
[C] C프로그래밍 과제 모음 (3) (0) | 2023.04.27 |
---|---|
[C] C프로그래밍 과제 모음 (1) (0) | 2023.04.25 |