coding/C언어 10

파일 입출력 이해하기. 텍스트파일에서 특정 문자열 탐색하는 프로그램

#define _CRT_SECURE_NO_WARNINGS #include #include int main(void) { FILE* fp; char fname[128]; char buffer[256]; char word[256]; int line_num = 0; printf("입력 파일 이름을 입력하시오: "); scanf_s("%s ", fname); printf("탐색할 단어를 입력하시오: "); scanf_s("%s", word); if ((fp = fopen(fname, "r")) == NULL) { fprintf(stderr, "파일 %s를 열 수 없습니다.\n", fname); exit(1); } while (fgets(buffer, 256, fp)) { line_num++; if (strstr..

coding/C언어 2021.11.23

포인터, 구조체 이해하기. 평점이 제일 높은 학생 출력 프로그램

#include struct student { int number; char name[20]; double grade; }; struct student list[] = { {20180001, "홍길동", 4.2}, {20180002, "김철수", 3.2}, {20180003, "김영희", 3.9} }; int main(void) { struct student super_stu; int i, size; size = sizeof(list) / sizeof(list[0]); super_stu = list[0]; for (i = 1; i super_stu.grade) super_stu = list[i]; } printf("평점이 가장 높은 학생은(이름: %s, 학번: %d, 평점: %f)입니다.\n", supe..

coding/C언어 2021.11.19

구조체를 가리키는 포인터

내가 제일 싫어하는 부분이다. 아직 완벽히 이해하지 못했다. #include struct date { int month; int day; int year; }; struct student { int number; char name[20]; double grade; struct date* dob; }; int main(void) { struct date d; struct student s; s.dob = &d; //구조체 변수 s의 멤버인 포인터 dob에 구조체 d의 주소를 대입하였다. printf("학번을 입력해주세요: "); scanf_s("%d", &s.number); printf("이름을 입력해주세요: "); scanf_s("%s", s.name); printf("학점을 입력해주세요: "); sca..

coding/C언어 2021.11.19

C프로그래밍 구조체 이해하기. 2차원 공간 상의 점의 거리 구하기.

구조체란, 서로 다른 종류의 데이터를 하나로 묶기위해 사용하는 자료형이다. 예를 들어, 학생의 정보를 구조체로 묶어보자. struct student { int number; char name[10]; double grade; } 배열이 여러 개의 같은 자료형을 하나로 묶는 것이라면 구조체는 서로 다른 자료형들을 하나로 묶는 것이다. 2차원 공간 상의 점을 구조체로 표현하기 사용자로부터 두 점의 좌표를 입력받아서 두 점사이의 거리를 계산하여 보자. 점의 좌표를 구조체로 표현한다. 두 점 사이의 거리를 구하는 공식으로 계산한다. #include #include struct point { int x; int y; }; int main(void) { struct point p1, p2; int xdiff, yd..

coding/C언어 2021.11.18

C프로그래밍 함수 이해하기. 섭씨 온도를 화씨 온도로, 그 반대로 변환하는 프로그램 작성. 난수함수로 동전던지기 게임 만들기;

#include void printOptions() { printf(" 'c' 섭씨온도에서 화씨온도로 변환 \n"); printf(" 'f' 화씨온도에서 섭씨온도로 변환 \n"); printf(" 'p' 종료\n"); } double C2F(double c_temp) { return 9.0 / 5.0 * c_temp + 32; } double F2C(double f_temp) { return(f_temp - 32.0) * 5.0 / 9.0; } int main(void) { char choice; double temp; while (1) { printOptions(); printf("메뉴에서 선택하세요."); choice = getchar(); if (choice == 'q') break; else if..

coding/C언어 2021.11.18

C프로그래밍 포인터 이해2 자율주행자동차 센서에서 장애물까지의 거리

포인터도 배열 이름처럼 간주될 수 있고 배열과 똑같이 사용할 수 있다. #include int main(void) { int a[] = { 10, 20, 30, 40, 50 }; int* p; p = a; printf("a[0]=%d a[1]=%d a[2]=%d \n", a[0], a[0], a[0]); printf("p[0]=%d p[1]=%d p[2]=%d \n", p[0], p[1], p[2]); p[0] = 60; p[1] = 70; p[2] = 80; //포인터를 마치 배열의 이름처럼 사용하여 배열 요소에 값을 대입한다. p와 a는 똑같은 곳을 가리키고 있기 때문에 p를 사용하든지 a를 사용하든지 결과는 똑같다. printf("a[0]=%d a[1]=%d a[2]=%d", a[0], a[1], ..

coding/C언어 2021.11.16

C 프로그래밍 포인터 이해하기

포인터는 C언어가 Low레벌 언어의 특성을 지니게 해준 녀석이다. 왜냐하면 포인터를 이용하면 메모리에 직접 접근이 가능하기 때문이다. 포인터 변수란 메모리의 주소 값을 저장하기 위한 변수이다. * 포인터 변수와 & 연산자에 대해서 알아보자! int main(void) { int num = 7; int * pnum.; //포인터 변수 pnum의 선언 pnum = # //num의 주소 값을 포인터 변수 pnum에 저장 } * pnum = 20; printf("%d", *pnum); 위의 코드를 해석하면 다음과 같다. "포인터 변수 pnum이 가리키는 메모리 공간인 변수 num에 정수 20을 저장해라!" "포인터 변수 pnum이 가리키는 메모리 공간인 변수 num에 저장된 값을 출력해라!" 예제를 통해..

coding/C언어 2021.11.16

C 프로그래밍 배열 이해하기 max min 구하기

1차원 배열의 선언에 필요한 것은 세 가지가 있다. 배열 이름, 자료형, 길이정보 * int 배열을 이루는 요소의 자료형 * WneDimArr 배열의 이름 * [4] 배열의 길이 위의 세가지가 의미하는 것은 "int형 변수 4개로 이뤄진 배열을 선언하되, 그 배열의 이름은 onDimArr이다" int arr1[7]; // 길이가 7인 int형 1차원 배열 arr1 float arr2[10]; //길이가 10인 float형 1차원 배열 arr2 double arr3[12]; //길이가 12인 double형 1차원 배열 arr3 이렇게 배열을 선언하면 된다! 그렇다면, 이제 배열을 이용해서 max, min을 구하는 코드를 짜보자. #define _CRT_SECURE_NO_WARNINGS #include in..

coding/C언어 2021.11.16