본문 바로가기

C

박시현 6주차 C프로그래밍 과제

C프로그래밍

6주차 과제

 

 

 

 

 

과 목 명 : C프로그래밍

담당교수 : 한성현 교수님

학 과 : 컴퓨터소프트웨어학과

학 년 : 1학년

학 번 : 2024001684

이 름 : 박시현

제 출 일 : 2024 4월 9일

----------------------A를 출력하는 다양한 방법-----------------------

#include <stdio.h>
int main() {
// 기본적인 'A' 출력
printf("A");
// 문자 변수를 이용한 출력
char letter = 'A';
printf("%c", letter);
// 반복문을 이용한 'A' 출력
for (int i = 0; i < 1; i++) {
printf("A");
}
// 조건문과 함께 사용
if (1) {
printf("A");
}
return 0;
}

-------------------------------------------------------------------------------

출처:한성현 교수님의 강의 자료
출처:한성현 교수님의 강의 자료

 

출처:한성현 교수님의 강의 자료

----------------------#pragma를 사용한 코드-----------------------

//#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:4996) //컴파일러 기능을 지정하는 전처리기
#include <stdio.h>
int main(void)
{
int num;
printf("숫자 하나를 입력하세요=");
scanf("%d", &num);
printf("입력받은 수는 %d 입니다.\n", num);
return 0;
}

---------------------------------------------------------------------------

출처:한성현 교수님의 강의 자료
출처:한성현 교수님의 강의 자료

----------------------예제 1-----------------------

#include <stdio.h>
#define AA 2
#define sum3(i,j,k) ((i)+(j)+(k))
int main(void)
{
printf("%d\n", sum3(AA, 4, 6));
printf("%d\n", sum3(AA, 4, 6) / 2);
printf("%f\n", sum3(1.2, 2.3, 3.4));
printf("%d\n", AA);
return 0;
}

-----------------------------------------------------

출처:한성현 교수님의 강의 자료
출처:한성현 교수님의 강의 자료

----------------------예제 2-----------------------

#include <stdio.h>
#define AA 2
#define sum3(i,j,k) ((i)+(j)+(k))
int main(void)
{
printf("%d\n", sum3(AA, 4, 6));
printf("%d\n", sum3(AA, 4, 6) / 2);
printf("%d\n", AA);
return 0;
}

-----------------------------------------------------

출처:한성현 교수님의 강의 자료
출처:한성현 교수님의 강의 자료

----------------------예제 3-----------------------

#include <stdio.h>
int main()
{
#ifdef _DEBUG
printf("Debug 모드");
#else
printf("Release 모드");
#endif
return 0;
}

-----------------------------------------------------

출처:한성현 교수님의 강의 자료
출처:한성현 교수님의 강의 자료

----------------------예제 4-----------------------

#include <stdio.h>
#define ST(ii) # ii //매크로 함수의 매개변수 ii를 문자열로 만든다.
int main(void)
{
printf("%s %s", ST(I am), "Han");//매개변수 I am은 문자열 "I am"이 됨
return 0;
}

-----------------------------------------------------

출처:한성현 교수님의 강의 자료

----------------------예제 5-----------------------

#include <stdio.h>
#define PLUS(a) a##1+a##2+a##3
#define PRINT(p) printf("%d %d\n",p##t,p##s);
int main(void)
{
int d1 = 10, d2 = 20, d3 = 30;
int e1 = 4, e2 = 5, e3 = 6;
int tott, tots;
tott = PLUS(d); // tott=d1+d2+d3;
tots = PLUS(e); // tots=e1+e2+e3;
PRINT(tot); // printf("%d %d\n",tott,tots);
return 0;
}

-----------------------------------------------------

출처:한성현 교수님의 강의 자료

----------------------예제 6-----------------------

#include <stdio.h>
int main(void)
{
printf("__LINE__ : %d\n", __LINE__);
printf("__DATE__ : %s\n", __DATE__);
printf("__LINE__ : %d\n", __LINE__);
printf("__TIME__ : %s\n", __TIME__);
printf("__TIMESTAMP__ : %s\n", __TIMESTAMP__);
printf("__FILE__ : %s\n", __FILE__);
return 0;
}

-----------------------------------------------------

예제 6의 결과
출처:한성현 교수님의 강의 자료

----------------------실습문제-----------------------

#include <stdio.h>
#define SQUARE1(a) ( a * a )
#define SQUARE2(a) ( (a) * (a) )
#define TOTAL 10
int main(void)
{
int x = 3;
printf("%d %d\n", SQUARE1(2), SQUARE2(2)); //SQUARE1 == 2 * 2 == 4 SQUARE2 == (2) * (2) == 4
printf("%d %d\n", SQUARE1(x), SQUARE2(x)); //SQUARE1 == 3 * 3 == 9 SQUARE2 == (3) * (3) == 9
printf("%d %d\n", SQUARE1(x + 2), SQUARE2(x + 2)); //SQUARE1 == 3 + 2 * 3 + 2 == 11 SQUARE2 == (3 + 2) * (3 + 2) == 5 * 5 == 25
//x+2*x+2 (x+2)*(x+2)
printf("Total==%d", TOTAL); //Total == 10
return 0;
}

-----------------------------------------------------

첫번째 출력 해석 : 식에 '2'를 대입하여 SQUARE1 == 2 * 2 == 4, SQUARE2 == (2) * (2) == 4라는 결과가 나왔다.

두번째 출력 해석 : x의 값인 '3'을 식에 대입하면 SQUARE1 == 3 * 3 == 9, SQUARE2 == (3) * (3) == 9이 된다.

세번째 출력 해석 : 식의 괄호로 인해 계산 순서가 달라져 SQUARE1 == 3 + 2 * 3 + 2 == 11, SQUARE2 == (3 + 2) * (3 + 2) == 5 * 5 == 25이라는 결과가 나왔다.

네번째 출력 해석 : #define TOTAL 10으로 TOTAL의 값은 10이 되어있다.

출처:한성현 교수님의 강의 자료

----------------------실습문제2-----------------------

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int kor, eng, mat, his, total; // eng와 mat 변수 추가, total 변수 선언
char name[10];
double avg;
printf("총점과 평균을 구하는 프로그램입니다.\n"); // 프로그램 설명
printf("이름을 입력하고 Enter를 누르세요 = "); // 이름 입력 부분 추가
scanf("%9s", name);
printf("국어 점수를 입력하고 Enter를 누르세요="); // 국어 점수 입력 부분 추가
scanf("%d", &kor);
printf("영어 점수를 입력하고 Enter를 누르세요="); // 영어 점수 입력 부분 추가
scanf("%d", &eng);
printf("수학 점수를 입력하고 Enter를 누르세요="); // 수학 점수 입력 부분 추가
scanf("%d", &mat);
printf("역사 점수를 입력하고 Enter를 누르세요="); // 역사 점수 입력 부분 추가
scanf("%d", &his);
total = kor + eng + mat + his; // 올바른 총점 계산
avg = total / 4.0; // 올바른 평균 계산
printf("%s의 총점은 %d이고, 평균은 %.2f입니다.\n", name, total, avg); // 출력 형식 수정
printf("지금은 ===>%s", __TIMESTAMP__);
return 0;
}

-----------------------------------------------------

위 프로그램 실행 결과