대학수업을 듣고 이해한 내용을 정리해서 올리는 게시물입니다. 틀린 부분이 있을지do...
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int get_integer() {
int value;
printf("정수를 입력하시오 : ");
scanf("%d", &value);
return value;
}
int get_max(int x, int y) {
return (x > y) ? x : y;
}
int power(int x, int y) {
long result = 1;
for (int i = 0; i < y; i++) {
result *= x;
}
return result;
}
int main() {
int x = get_integer();
int y = get_integer();
int result = x + y;
printf("두 수의 합 = %d\n", result);
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//함수 원형
double FtoC(double temp_f);
int main() {
double c, f;
f = 32.0;
c = FtoC(f);//함수 호출
printf("화씨온도 %f는 섭씨온도 %f에 해당한다.\n", f, c);
return 0;
}
//함수 정의
double FtoC(double temp_f) {
double temp_c;
temp_c = (temp_f - 32) * (5.0 / 9.0);
return temp_c;
}
//화씨온도 32.000000는 섭씨온도 0.000000에 해당한다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int get_points(float x, float y) {
float distance = sqrt(x * x + y * y);
if (distance > 10) {
return 0;
}
else if (distance > 5) {
return 1;
}
else if (distance > 1) {
return 5;
}
else /*if (distance > 0)*/ {
return 10;
}
}
int main(void) {
float x, y;
printf("다트의 x, y좌표를 입력하세요 : ");
scanf("%f %f", &x, &y);
int points = get_points(x, y);
printf("다트는 %d점을 획득했습니다.\n", points);
return 0;
}
//다트의 x, y좌표를 입력하세요 : 6 6
//다트는 1점을 획득했습니다.
#include <stdio.h>
#include <time.h>//1970년 1월1일부터 흘러온 초를 반환
int main(void) {
time_t stime, etime; //time_t는 unsigned long과 동일
stime = time(NULL);
printf("10초가 되면 아무 키나 누르세요\n");
getch();//int를 반환하지만 반환값무시하고 입력하면 다음동작을 수행한다는 뜻
printf("종료되었습니다.");
etime = time(NULL);
printf("경과된 시간은 %ld 초 입니다.\n", etime-stime);//long이므로 형식지정자 %ld
return 0;
}
//10초가 되면 아무 키나 누르세요
//종료되었습니다.경과된 시간은 10 초 입니다.
time.h헤더를 통한 time()사용
getch()사용, int를 반환함
#include <stdlib.h>//난수를 사용을 위한 srand(), rand()를 호출하기위한 헤더
//srand()는 seed값에따라 rand()가 달라짐->seed값을 랜덤으로지정하기위해서 time()사용
#include <stdio.h>
#include <Windows.h>//time.h가 포함되어있어서 time()을 쓴다고 따로 추가하지않음
//자동차의 위치는 전역함수로 선언
int car1_pos = 1, car2_pos = 1; //car_pos=자동차의 위치라는 뜻, 시작은 1로 초기화
//경주판 표시하기, 총거리30으로가정
/*경주판 모양 예제
1*****************************Goal1
2*****************************Goal2
*/
void disp_car(int car_number, int pos) {//차번호,위치
for (int i = 0; i < pos - 1; i++) { //pos-1까지 거리표시, pos에는 차번호를 표시해야하니까
printf("*");
}
printf("%d", car_number);
for (int i = 0; i < 30 - pos; i++) {//차번호 이후부터 30-pos만큼 남은 거리 표시
printf("*");
}
printf("Goal%d\n", car_number);
}
//반복해서 자동차 움직이기
void move_car() {
getch();//enter누르면 움직임
system("cls");//움직일때마다 화면 지우고 그림
if (car1_pos > 30) //30초과하면 30까지 간걸로하고 경주판 그리기
car1_pos = 30;
if (car2_pos > 30)
car2_pos = 30;
disp_car(1, car1_pos);
disp_car(2, car2_pos);
}
//main (rand함수를 이용해서 pos값을 변경)
int main(void) {
//시작하기전 경주판 그리기
disp_car(1, car1_pos);
disp_car(2, car2_pos);
//난수를 생성하면서 위치조정
srand(time(NULL));
printf("Enter키를 누르면 자동차가 움직입니다.");
for (int i = 0; i < 30; i++) {//랜덤수가 계속 1만뜬다면 최대 30번 실행하므로 30까지 반복
car1_pos += 1 + rand() % 6;//1~6사이로 랜덤수만큼 이동(주사위 던졌다고 생각ㅋ)
move_car();
if (car1_pos == 30) {
printf("Car1 승리!\n");
break;
}
car2_pos += 1 + rand() % 6;
move_car();
if (car2_pos == 30) {
printf("Car2 승리!\n");
break;
}
}
return 0;
}