C언어 23

3차시 함수, 재귀함수

함수 프로그래밍에서 함수란 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 프로그램 코드의 집합으로 정의할 수 있습니다. C 프로그램은 이러한 함수들로 구성되며, 포함된 함수들을 사용하여 목적을 달성하게 됩니다. 함수를 사용하는 이유는 반복적인 프로그래밍을 피하기 위함이며, 필요할 때마다 함수를 호출하여 반복작업을 실행할 수 있습니다. 함수를 선언하는 방법은 다음과 같습니다. 변환자료형 함수이름 (매개변수 목록) { 함수 내용; } 이를 코드로 짜면 다음과 같습니다. #include int func(int a){ if(a>5) printf("%d는(은) 5보다 큽니다",a); else if(a5) printf("%d는(은) 5보다 큽니다",a); else if(a10 10는(은) 5보다 큽니다 >3..

2차시 포인터와 구조체

포인터란? C언어에서 포인터란 메모리의 주소값을 저장하는 변수이며, 포인터 변수라고도 부릅니다. char형 변수가 문자를 저장하고, int형 변수가 정수를 저장하는 것처럼 포인터는 주소값을 저장합니다 포인터 변수를 선언할 때 코드는 아래와 같습니다. a라는 정수형 변수에 10을 넣어주고 포인터에 타입인 int와 변수 이름 앞에 *를 붙입니다. 그리고 &를 통하여 a라는 변수의 주소값을 불러옵니다. 마지막으로 printf를 할 때 포인터 변수 앞에 *을 붙여주면 주소에 지정된 값을 불러줍니다. 그러나 만약 *를 붙이지 않는다면 그저 주소값만 불러오게 됩니다. 실행 결과는 아래와 같습니다. 이처럼 포인터는 *를 붙이는 것에 따라 출력값이 확연히 다를 수 있기에 코드를 짤 때는 상황에 맞게 적절히 사용해야 합..

2차시 문제 3번 풀이

int* 형 자료 front,back과 int형 자료 data를 포함한 구조체 comp를 만든다. comp구조체 배열의 크기를 100으로 저장 후, *front의 값을 NULL로 저장한다. 이외에도 여러 변수 저장. n만큼 반복 후 idx[i]에 data를 저장한다. 그와 동시에 front를 idx[i]로 저장한뒤 m이 0보다 크면 back을 idx[i]로 저장한다. 이 반복문이 끝나면 front에는 현재 배열의 전 배열 값, back에는 전 배열값의 후 배열값을 저장하게 된다. 마지막에 while문을 통해 data의 값을 출력하다가 back값이 NULL이 되면 무한반복을 빠져나오도록 하였다. **이번 문제는 내가 여태까지 풀었던 문제 중 제일 골치 아프면서 머리아팠는데, 아마 포인터와 구조체의 원리와 ..

백준1546 평균 C언어 풀이

먼저 배열 scr을 선언해 준다. 그다음 변수 n에 시험을 본 개수를 입력받고 그만 틈 반복을 돌린다. 그리고 변수 m에 시험 정수 중 가장 높은 점수, 즉 최댓값을 저장한다. 그리고 scr[i]의 해당하는 시험 점수를 모두 세준이의 방식대로 바꾼 뒤, 변수 sum에 바뀐 점수를 더한다. 저 때 m의 형태를 double로 두어 계산해야 소수까지 계산이 된다. 마지막으로 double형 변수 avg에 평균 값을 저장한 뒤 출력한다.