반응형

C언어 18

[C언어-응용문제] 동적 메모리 할당을 사용한 배열 평균 구하기

동적 메모리 할당을 사용한 배열 평균 구하기학생 수를 입력받고, 해당 학생들의 점수를 동적 메모리 할당을 통해 저장한 후, 평균 점수를 구해 출력하는 프로그램을 작성하세요.사용 개념:동적 메모리 할당(malloc, free)반복문(for)입출력(scanf, printf) 풀이 방법학생 수 입력받기:scanf를 사용하여 사용자로부터 학생 수를 입력받습니다.동적 메모리 할당:malloc을 사용하여 입력된 학생 수만큼의 메모리를 할당하고, 학생 점수를 저장할 배열을 생성합니다.학생 점수 입력받기:for 반복문을 사용해 각 학생의 점수를 입력받아 동적 배열에 저장합니다.평균 점수 계산:반복문을 사용해 입력된 점수의 총합을 구한 후, 평균 점수를 계산합니다.결과 출력 및 메모리 해제:평균 점수를 출력하고, fre..

프로그래밍/C 2024.11.11

[C언어-응용문제] 파일에 텍스트 저장 및 읽기

파일에 텍스트 저장 및 읽기사용자가 입력한 텍스트를 파일에 저장하고, 저장된 내용을 파일에서 읽어와 화면에 출력하는 프로그램을 작성 사용 개념:파일 입출력(fopen, fprintf, fscanf, fgets, fclose)문자열 입력 및 출력(scanf, printf)풀이 방법 파일 열기:fopen 함수를 사용하여 파일을 쓰기 모드("w")로 열어 사용자가 입력한 텍스트를 저장텍스트 입력받기:scanf나 fgets를 사용해 사용자로부터 텍스트를 입력받아 파일 쓰기파일 닫기:입력이 끝나면 fclose로 파일 닫기파일 다시 열기:fopen을 읽기 모드("r")로 열어 파일에 저장된 내용 읽기파일 내용 출력:fgets를 사용하여 파일 내용을 한 줄씩 읽어 화면 출력파일 닫기:읽기가 끝나면 fclose로 파일..

프로그래밍/C 2024.11.10

[C언어-응용문제] 학생 점수 관리 프로그램 (구조체 문제)

학생 점수 관리 프로그램학생의 이름과 점수를 입력받아 평균 점수를 계산하고, 평균 점수가 60점 이상이면 "합격", 아니면 "불합격"을 출력하는 프로그램을 작성 사용 개념:구조체(struct)배열반복문(for)조건문(if)입출력(scanf, printf)  풀이 방법구조체 선언:학생의 이름과 점수를 저장할 struct를 정의학생 데이터 입력:for 반복문을 사용하여 학생의 이름과 점수를 입력받고, 구조체 배열에 저장평균 점수 계산:반복문을 통해 입력된 점수의 총합을 계산하고, 평균 점수를 구합니다.합격 여부 판단:평균 점수가 60점 이상이면 "합격", 그렇지 않으면 "불합격"을 출력 코드#include #include // 1. 학생 정보를 저장할 구조체를 정의합니다.struct Student {    ..

프로그래밍/C 2024.11.09

[C언어-응용문제] 반복문을 사용한 구구단 출력

반복문을 사용한 구구단 출력- 사용자가 원하는 숫자를 입력받아 그 숫자의 구구단(1부터 9까지 곱한 결과)을 출력하는 프로그램 사용 개념:반복문(for): 일정한 작업을 반복 실행할 때 사용조건문(if): 특정 조건을 만족할 때만 실행되는 코드 작성입출력(printf, scanf): 사용자와의 상호작용을 위한 입력과 출력풀이 방법숫자 입력받기printf로 안내 메시지를 출력해 사용자가 원하는 숫자를 입력하도록 합니다.scanf를 사용해 입력된 숫자를 변수(number)에 저장합니다.숫자 범위 확인if 조건문을 사용해 입력된 숫자가 1에서 9 사이인지 확인합니다.숫자가 1~9 사이가 아니면 오류 메시지를 출력하고 프로그램을 종료합니다.반복문으로 구구단 출력입력된 숫자가 1~9 사이에 있는 경우, for 반..

프로그래밍/C 2024.11.07

[C언어-응용문제] 간단한 계산기 프로그램 만들기

간단한 계산기 프로그램- 두 개의 숫자와 연산자(+, -, *, /)를 입력받아 두 숫자의 계산 결과를 출력하는 프로그램 사용 개념:입출력(scnaf, printf)조건문(if)연산자(+, -, *, /) 풀이 방법 숫자와 연산자 입력printf로 안내 메시지를 출력해 사용자가 두 숫자와 연산자를 입력하도록 유도scanf를 사용해 첫 번째 숫자(num1), 연산자(op), 두 번째 숫자(num2)를 각각 입력연산자에 따른 계산 수행if 조건문을 통해 입력된 연산자(op)가 어떤 연산인지를 확인하고, 이에 따라 서로 다른 계산을 수행+가 입력되면 두 숫자를 더하고, -가 입력되면 두 숫자를 빼는 방식나눗셈 예외 처리나눗셈(/) 연산의 경우 두 번째 숫자가 0이면 나눌 수 없으므로 오류 메시지를 출력결과 출..

프로그래밍/C 2024.11.06

[C언어] 13. 메모리 관리 동적 메모리 할당 (malloc, calloc, free)

1. 메모리 관리의 기본 개념- 메모리 구조 : C에서 메모리는 크게 스택, 힙, 데이터, 코드 영역으로 나눈다. 스택(Stack) 영역 :- 함수 호출 시 자동으로 할당되는 메모리 영역으로, 지역 변수와 함수의 매개변수가 저장- LIFO(Last In First Out) 구조로 작동하며, 함수 호출이 종료되면 해당 함수에서 사용한 메모리가 자동으로 해제- 할당과 해제 속도가 빠름- 스택 영역의 크기는 한정되어 있으며, 너무 많은 데이터를 스택에 할당하면 스택 오버플로우가 발생  힙(Heap) 영역 :- 동적 메모리 할당을 통해 프로그램이 실행되는 동안 필요할 때마다 메모리를 할당할 수 있는 영역- 프로그램에서 직접 관리해야 하며, malloc, calloc, realloc 함수로 메모리를 할당하고 fr..

프로그래밍/C 2024.11.01

[C언어] 12.파일 입출력 (fopen, fclose, fread, fwrite)

1. 파일 입출력의 기본 개념- 파일 입출력은 주로 파일을 열고 데이터를 읽거나 쓴 후 파일을 닫는 순서로 진행- 파일을 다루기 위해서는 먼저 해당 파일을 열어야 하며, 이를 위해 fopen 함수를 사용 - 파일 작업이 끝나면 반드시 파일을 닫아야 하며, fclose 함수 사용 fopen- fopen 함수는 파일을 열 때 사용하는 함수- 파일의 경로와 모드를 인자로 받고, 모드는 파일 읽기, 쓰기, 추가 등의 방식으로 나타냄- filename : 열고자 하는 파일의 이름(경로)- mode : 파일을 열 때의 모드 > r : 읽기 전용으로 파일을 열고, 파일이 존재하지 않으면 NULL 반환 > w : 쓰기 전용으로 파일을 열고, 파일이 존재하지 않으면 새 파일 생성, 존재하면 파일의 내용을 모두 삭제 한 ..

프로그래밍/C 2024.10.25

[C언어] 11. 구조체(Structure) (구조체와 배열, 구조체와 포인터)

1. 구조체- 구조체는 서로 다른 데이터 타입의 변수를 하나로 묶어 사용할 수 있게 해주는 사용자 정의 데이터 타입- 관련된 정보를 하나의 그룹으로 묶고자 할 때 유용- 학생의 이름, 나이, 성적과 같은 정보를 저장할 때, 이 정보를각각의 변수로 저장하는 대신 하나의 구조체로 묶어 관리  2. 구조체 선언- 구조체를 선언하려면 struct 키워드를 사용한 후, 구조체의 정의를 작성- Student라는 구조체를 선언 > 이름(name), 나이(age), 성적(grade)을 하나의 데이터로 묶어서 관리    struct Student {    char name[50];  // 학생 이름    int age;        // 학생 나이    float grade;    // 학생 성적};   3. 구조체 변..

프로그래밍/C 2024.10.24

[C언어] 10. 포인터 (포인터의 개념, 포인터와 배열, 포인터와 함수(Call by Reference))

1. 포인터의 개념 및 정의- 포인터(pointer)는 변수의 메모리 주소를 저장하는 변수- C언어에서 메모리와의 직접적인 상호작용을 가능하게 해주는 중요한 기능- 일반적인 변수는 값을 저장하지만, 포인터는 그 변수의 위치(주소)를 저장하는 변수 포인터의 필요성- 함수 호출 시, 대용량 데이터를 복사하지 않고 메모리 주소를 통해 효율적으로 처리- 동적 메모리 할당 가능- 배열과 문자열을 효율적으로 처리- 포인터를 통해 더 복잡한 데이터 구조(ex: 링크드 리스트, 트리) 가능 포인터 선언 방법- 여기서 int *ptr;는 ptr이 정수형(int) 데이터를 가리키는 포인터- * 기호는 해당 변수가 포인터임을 나타냄int *ptr; 포인터 변수 기본 예제int a = 10;int *p = &a;  // a의..

프로그래밍/C 2024.10.23

[C언어] 9. 함수

함수- 반복되는 작업을 간편하게 처리할 수 있도록 만든 코드 블록- 복잡한 문제를 작게 나누어 해결하기 쉬움- 함수의 선언은 main() 함수에서 사용 가능하지만, 선언은 main() 함수 안에서 할 수 없다.- 함수의 선언과 선언은 보통 전역변수로 많이 사용. 1. 함수 선언과 정의- 함수는 크게 두 부분으로 나눌 수 있으며, 선언과 정의라고 함 함수 선언- 함수 선언은 함수의 이름, 입력(인수), 그리고 반환 타입을 컴파일러에게 알려주는 역할- 함수가 어떻게 구현되는지 포함되지 않음- 선언은 보통 함수의 헤더 부분에 위치하거나, 헤더 파일에 작성- 아래 선언은 add 함수가 두 개의 int a, int b의 값을 받아 add로 반환 함수 정의- 실제 함수의 동작을 작성하는 부분- 선언된 함수가 어떻게..

프로그래밍/C 2024.10.16
반응형