CS/C 14

[2021W C프로그래밍과 실습][함수 문제5] 평균보다 작은 점수를 모두 반환하는 함수 작성하기

교수님이 주신 함수 문제중 좀 까다로운 문제이다. ​ 6명의 점수를 입력받아서 평균을 구한 다음, 평균보다 작은 점수를 모두 반환하는 small() 함수를 작성하시오. ​ 1. 전처리부와 main() 함수 #include #include double sum(double* arr); double* small(double* arr); int main(void) { double arr[6], * result; int i; for (i = 0; i < 6; i++) { printf("%d번째 점수 : ", i + 1); scanf("%lf", &arr[i]); } result = small(arr); printf("평균보다 작은수\n\n"); for (i = 0; i < 6 && result[i] != 0; i..

CS/C 2022.02.09

[2021W C프로그래밍과 실습][연습문제 10-10] 정수 포인터형을 return하는 함수를 작성해 합과 평균 구하기

[10-10] 다음과 같은 정수형 배열이 지역변수로 선언되어있다. int data[10] = { 56, 75, 450, 7, 340, 44, 120, 5, 20, 30 }; data 배열을 func() 함수에 전달하여 배열 원소의 합과 평균을 출력시키는 프로그램을 작성하려고 한다. 이떄 func() 함수 호출 시 실인수로 배열과 배열 원소의 수를 자식함수에게 전달하여 활용한다. ​ 1. 전처리부와 main() 함수 #include #include int main() { int data[10] = { 56, 75, 450, 7, 340, 44, 120, 5, 20, 30 }; int* ptr; ptr = func(data, sizeof(data) / sizeof(data[0])); // 배열의 시작 주소를..

CS/C 2022.02.09

[2021W C프로그래밍과 실습][연습문제 10-9] 포인터 매개변수로 하는 strcat() 함수 구현하기

[10-9] StrSource 배열의 문자열을 strDestination 배열에 추가하려고 한다. my_Strcat() 함수를 호출하여 문자열을 추가하는 기능을 구현한다. 이때 함수 호출 시 전달인자는 배열을 전달하고, my_Strcat() 함수는 배열의 시작주소를 매개변수로 받아 문자열을 추가해야한다. ​ 1. main() 함수 #include #include void my_Strcat(char* ptr_1, char* ptr_2); int main() { char strSource[20] = "dom"; char strDestination[20] = "king"; printf("Source : %s, Destination : %s\n\n", strSource, strDestination); my_St..

CS/C 2022.02.09

[2021W C프로그래밍과 실습][연습문제 10-7] 포인터 활용해서 라이브러리 함수 사용하지 않고 문자배열 소문자 ↔ 대문자 변환하기

[10-7] 소문자는 대문자로, 대문자는 소문자로 바꾸어 배열에 저장하려고 한다.(이때 라이브러리 함수를 사용하지 않는다.) 이 모든 제어를 포인터를 이용하여 처리하여 프로그램을 작성하라. ​ Hint 대문자 A의 ASCII code : 65, 대문자 Z의 ASCII code : 90 소문자 a의 ASCII code : 97, 대문자 z의 ASCII code : 122 #include #include int main() { char str[50] = "Multi Campus."; char* ptr; int cnt = 0; ptr = &str[0]; printf("before : %s\n\n", str); while (*(ptr + cnt) != NULL) { if (*(ptr + cnt) >= 97 &&..

CS/C 2022.02.09

[2021W C프로그래밍과 실습][연습문제 10-6] 개수를 알 수 없는 배열의 원소의 개수와 평균 구하기

[10 - 6] 학생의 점수가 다음 배열에 초기화 되어있다. 점수를 읽어 다음의 결과를 출력하는 프로그램을 작성하라. 이때 배열에 저장된 점수의 개수는 알 수 없으므로 평균을 구하기 위해 인원수를 증가시켜야 한다. 마지막 데이터는 배열원소에 0이 저징된 것을 기준으로 한다. 이 모든 제어를 포인터를 이용하여 처리하도록 한다. #include #include int main() { int score[21] = { 57, 87, 64, 86, 97, 78, 61, 81, 73, 37, 54 }; int i, sum = 0, cnt = 0; int* ptr; ptr = &score[0]; printf("학생들의 점수\n"); while (*(ptr + cnt) != 0) // 이 두 while문의 반복조건은 ..

CS/C 2022.02.09

[2021W C프로그래밍과 실습][연습문제 10-5] 포인터 활용 - 입력받은 문자열 거꾸로 출력하기, strlen() 없이 문자열의 크기 구하기

[10-5] 키보드로부터 문자열을 입력 받아 이를 반대로(끝에서부터) 출력하는 프로그램을 포인터를 이용하여 작성하라. 또한 문자열의 크기를 구하여 함께 출력하도록 하라. ​ 실습시험을 대비해서 연습문제랑 교수님이 준 예제를 풀고 블로그에 문제 분석글을 올려보려고 한다. 이 문제는 포인터를 이용해 입력받은 문자열을 반대로 출력하는 코드를 짜는 문제이다. #include #include int main() { char str[20] = ""; char* ptr; int i, cnt = 0; printf("Input String ? "); // scanf("%s", str); // scanf는 공백을 기준으로 입력받는구나!! gets(str); while (str[cnt] != NULL) { cnt++; } ..

CS/C 2022.02.09

[2021W C프로그래밍과 실습][예제] 구조체 배열 포인터를 매개변수로 하는 함수 - Bubble sort 함수 활용

중간고사 준비도 하고 귀찮아져서 함수부터 포스팅을 띵가먹었다. 블로그 이름과 달리 기록보다 기억을 하기로 했다. 귀찮아서 그런거 아님! ​ 구조체, 배열, 포인터, 함수를 모두 활용하는 예제를 풀었는데 코드분석하고 넘어가면 좋을듯해서 포스팅한다. 문제는 다음과 같다. ​ - 구조체 배열을 사용하여 어떤 사람의 이름, 국어, 영어, 수학의 성적 점수를 입력 받아서 3과목의 합계, 평균을 구한 후 평균 점수가 높은 것에서 낮은 순으로 정렬하여 성적표를 나타내는 프로그램을 작성(최대 10명 처리) ​ 원래는 함수를 사용하지 않고 main() 함수안에서 다 해결하는 문제였는데, 구조체 함수 파트에서 변형해서 문제가 나왔다. ​ 힌트로 전처리부 코드, main() 함수 코드가 주어졌다. #include #incl..

CS/C 2022.02.09

[2021W C프로그래밍과 실습] 반복문

for 반복 제어문 · 하나 이상의 문장들을 반복 실행하기 위해 for문을 사용 · for문은 반복횟수를 알거나, 지정해줄 때 주로 사용한다. ​ 1) 초기화(initialization) : 반복을 제어하는 제어변수에 초기값을 설정하는 부분 - 한번만 실행된다. ​ 2) 조건식 : 반복 조건을 결정 - 조건식이 참이면 반복을 계속하고, 조건문의 결과가 거짓이면 loop 탈출, every loop 마다 검사한다. ​ 3) 증감식 : 제어 변수의 값을 변경 시킴, every loop 마다 끝에서 실행 ​ · for문의 특징 - 반복문에서 변수 선언은 컴파일러 버전에 따라 허용하기도 한다. 하지만 실행문 중에 변수를 선언하는 것은 반복문 외에는 권장사항이 아니다. - 조건이 처음부터 거짓일 경우에는 반복은 실..

CS/C 2022.02.09

[2021W C프로그래밍과 실습] 제어문

제어문이란? · 어떤 명령을 어러 번 시행되거나, 조건에 따라 특정 명령을 수행해야 할 경우가 발생할 때 제어구조를 사용 · 제어구조 - 조건제어(if, switch) : 조건을 묻는 문장 - 반복제어(for, while, do while) : 반복실행 - 기타제어(break, continue, goto) : 프로그램의 흐름을 다른 곳으로 이동 break, coutinue : 반복문 정지, 계속 goto : 무조건 분기문 ​ ​ 조건제어 · if 조건문 - if문의 수행은 조건이 참 또는 거짓인지에 따라 실행문이 결정 - if문의 조건식이 참일 때 명령문을 수행한다!! 거짓이라면 if문 다음 statement를 실행 ​ · if ~ else 구문 - if ~ else에서는 if문의 조건식이 참이 아닌 경..

CS/C 2022.02.09

[2021W C프로그래밍과 실습] 연산자

C언어 연산자 · 수식은 연산자(operator)와 피연산자(operand)들로 구성된다. - 단항 연산자에는 증감연산자가 있다!! ​ 산술 연산자 · 이항 연산자이고 연산 결과가 수치(int, float, double)이다 · +. -, *, / 연산을 하는 연산자 · 나머지(%)(modulus) 연산자 → 조건문에서 몇의 배수 확인할 때나 짝수/홀수 여부 확인할 때 요긴하게 쓰인다. ※ 정수형 / 정수형 연산은 몫만 나타나고 나머지 연산자는 정수형과 함께 사용 가능하다는 점을 주의!! ​ 증감 연산자 · 정수형 변수의 값을 1 증가시키거나, 1 감소시키는 연산자 · 1을 더하고 빼는 대입문보다 증감연산자가 더 빠른 기계어 코드를 만든다고 한다. · 증감 연산자는 전치형(++변수, --변수)과 후치형(..

CS/C 2022.02.09