Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 프로그래밍

  1. C 언어 병합 정렬(Merge Sort) 기법 완벽 가이드

    정렬(Sorting)이란 데이터 요소들을 오름차순 또는 내림차순으로 배열하는 과정을 말합니다. 효율적인 데이터 처리를 위해 다양한 정렬 알고리즘이 개발되어 왔으며, 그중 병합 정렬(Merge Sort)은 안정성과 일관된 성능으로 널리 사용되는 대표적인 알고리즘입니다.C 언어의 5가지 대표 정렬 기법C 언어에서 주로 사용되는 정렬 기법은 다음과 같습니다.버블 정렬(Bubble Sort, 교환 정렬)선택 정렬(Selection Sort)삽입 정렬(Insertion Sort, 선형 정렬)퀵 정렬(Quick Sort, 분할 교환 정렬)병합

  2. 디렉터리 내 모든 파일과 폴더를 출력하는 C 프로그램 작성 방법

    파일이란?파일(file)은 레코드들의 집합으로, 데이터가 하드 디스크에 영구적으로 저장되는 공간을 의미합니다. C 언어에서 제공하는 다양한 명령어를 활용하면 파일에 여러 가지 방식으로 접근하고 조작할 수 있습니다.파일에서 수행할 수 있는 기본 연산C 프로그래밍 언어에서 파일에 대해 수행할 수 있는 대표적인 연산은 다음과 같습니다.파일 이름 지정파일 열기파일 읽기파일 쓰기파일 닫기파일 처리 기본 문법1. 파일 포인터 선언 및 파일 열기먼저 FILE 구조체 포인터를 선언한 뒤, fopen() 함수로 파일을 엽니다.FILE *파일_포인터

  3. C 언어에서 포인터를 사용해 두 행렬을 곱하는 방법

    포인터(Pointer)는 다른 변수의 메모리 주소를 저장하는 변수입니다. C 언어에서 포인터를 제대로 이해하면 배열, 문자열, 동적 메모리 관리 등을 훨씬 효율적으로 다룰 수 있습니다.포인터의 주요 특징포인터를 사용하면 메모리 공간을 절약할 수 있습니다.메모리 위치에 직접 접근하기 때문에 실행 속도가 빠릅니다.포인터를 활용하면 메모리를 효율적으로 접근할 수 있으며, 메모리를 동적으로 할당하고 해제할 수 있습니다.연결 리스트, 트리 등 다양한 자료구조 구현에 필수적으로 사용됩니다.포인터의 선언, 초기화 및 접근다음 문장을 예로 들어

  4. C 언어 math.h 라이브러리로 코사인·사인 값 계산하기

    C 언어의 표준 수학 라이브러리인 math.h에는 삼각함수를 비롯해 다양한 수학 관련 함수들이 포함되어 있습니다. 이번 글에서는 cos() 함수와 sin() 함수를 활용해 0도부터 150도까지 10도 간격으로 코사인 값과 사인 값을 계산하고 출력하는 C 프로그램을 단계별로 살펴보겠습니다. 문제 정의 0도에서 150도까지 10도 간격의 모든 각도에 대해 코사인 값과 사인 값을 구해 화면에 출력하는 것이 목표입니다. 해결 방법 math.h의 삼각함수는 라디안(radian) 단위의 입력값을 받기 때문에, 먼저 각도를 라디안으로 변환하는

  5. C 매크로 함수를 활용해 판매원 급여를 계산하는 프로그램

    문제 상황어느 노트북 제조 회사는 판매원들에게 다음과 같은 월별 급여 지급 정책을 적용하고 있습니다.기본 최저 급여: 3,000.00판매 보너스: 노트북 한 대당 200.00커미션: 월간 총 판매액의 5%노트북의 가격은 시장 상황에 따라 달라지기 때문에, 각 제품의 판매 가격은 매월 초에 고정됩니다.해결 방법보너스와 커미션을 계산하는 핵심 로직은 다음과 같습니다.bonus = BONUS_RATE * quantity;commission = COMMISSION * quantity * price;총 급여(세전 급여)는 아래 공식을 이용해

  6. C 프로그램으로 다양한 형식의 문자와 문자열 출력하기

    C 프로그래밍 언어에서는 printf 함수와 형식 지정자(format specifier)를 조합하면 문자와 문자열을 다양한 형식으로 출력할 수 있습니다. 아래 알고리즘은 이 과정을 단계별로 설명합니다.알고리즘1단계: 출력할 문자 하나를 입력받습니다.2단계: 컴파일 시점에 이름(문자열)을 지정합니다.3단계: 형식 지정자를 사용하여 문자를 여러 형식으로 출력합니다.printf(%c\n%3c\n%5c\n, x, x, x);printf(%3c\n%c\n, x, x);printf(\n);4단계: 형식 지정자를 사용하여 문자열을 여러 형식으로

  7. C 프로그램으로 개인용 컴퓨터의 가격 범위와 평균 비용 계산하기

    문제 정의개인용 컴퓨터는 판매 업체에 따라 서로 다른 가격에 판매됩니다.몇몇 업체가 제시한 가격 목록(단위: 백 원)은 다음과 같습니다.25.00, 30.50, 15.00, 28.25, 58.15,37.00, 16.65, 42.00, 68.45, 53.50해결 방법주어진 가격 자료로부터 평균 비용과 값의 범위(range)를 계산해야 합니다.범위란 자료 집합에서 최댓값과 최솟값 사이의 차이를 의미하며, 다음 식으로 구할 수 있습니다.범위 = 최댓값 − 최솟값따라서 먼저 자료 전체에서 최댓값과 최솟값을 찾은 뒤, 두 값의 차이로 범위를

  8. C 언어로 구구단(곱셈표) 출력 프로그램 만들기 – 중첩 do-while 루프 활용법

    문제 정의 1 × 1부터 12 × 10까지의 곱셈표(구구단)를 아래 형식과 같이 화면에 출력하는 프로그램을 작성하는 것이 이번 글의 목표입니다. 1 2 3 4 5 6 7 8 9 10 2 4 6 8 ……………….20 3 6 9………………………30 4 8 12 16………………..40 - - - 12 24……………………..120 해결 방법 중첩(nested) 형태로 구성된 두 개의 do-while 루프를 사용하면 곱셈표를 간단하고 깔끔하게 출력할 수 있습니다. 곱셈표를 표시하는 핵심 로직은 다음과 같습니다. 외부 루프(바깥 루프):

  9. C 프로그래밍으로 숫자 목록의 중앙값(Median) 구하기

    중앙값(Median)이란?목록의 요소들이 크기순으로 정렬되어 있을 때, 전체 항목을 양쪽에 동일한 개수의 항목이 남도록 둘로 나누는 가운데 값을 중앙값(median)이라고 합니다.항목의 개수가 홀수이면 중앙값은 하나뿐이지만, 짝수이면 가운데 값이 두 개가 됩니다. 따라서 항목 수가 짝수일 때의 중앙값은 두 가운데 값들의 평균으로 정의됩니다.알고리즘중앙값을 계산하기 위한 알고리즘은 다음과 같습니다.1단계 – 항목의 개수를 세면서 배열에 항목들을 입력받습니다.2단계 – 항목들을 크기순으로 정렬합니다.3단계 – 중앙값을 계산합니다.정렬

  10. C 언어로 표준편차 계산하기 – 알고리즘과 예제 코드 총정리

    표준편차란 무엇인가?표준편차(Standard Deviation)는 데이터가 평균으로부터 얼마나 벗어나 있는지, 즉 데이터의 흩어짐 정도를 측정하는 대표적인 통계 지표입니다. 값이 클수록 데이터가 평균에서 멀리 퍼져 있고, 작을수록 평균 주변에 밀집해 있다는 의미입니다.표준편차를 구하는 수학적 공식은 다음과 같습니다.s = √(분산)여기서 분산(Variance)과 평균(m)은 각각 아래와 같이 정의됩니다.분산 = (1/n) × Σ(xi − m)2m = 평균 = (1/n) × Σxi즉, 각 데이터에서 평균을 뺀 값을 제곱한 뒤 모두 더

  11. C 문자열 함수를 활용해 이름을 알파벳 순서로 정렬하는 프로그램

    문제 정의실행 시점에 사용자가 입력한 이름 목록을 버블 정렬(bubble sort) 기법을 사용하여 알파벳 순서로 정렬하는 프로그램을 작성해 보겠습니다. 이 프로그램은 C 언어의 표준 문자열 함수인 strcmp()와 strcpy()를 활용합니다.해결 방법이름을 알파벳 순서로 정렬하는 핵심 로직은 다음과 같습니다. 인접한 두 문자열을 strcmp() 함수로 비교한 후, 순서가 잘못되어 있으면 strcpy() 함수를 사용해 두 문자열의 내용을 서로 교환합니다.for (i=1; i < ITEMS; i++){  &n

  12. C 언어 큐(Queue) 요소 삽입 방법: FIFO 개념부터 실전 예제 코드까지

    자료구조란 무엇인가?자료구조(Data Structure)는 데이터를 체계적이고 효율적인 방식으로 조직화하여 모아 놓은 것을 의미합니다. 자료구조는 크게 두 가지 유형으로 나눌 수 있습니다.선형 자료구조(Linear Data Structure) – 데이터가 일렬로 나열된 형태로 저장됩니다. 대표적인 예로 배열, 구조체, 스택, 큐, 연결 리스트 등이 있습니다.비선형 자료구조(Nonlinear Data Structure) – 데이터가 계층적인 형태로 저장됩니다. 대표적인 예로 트리, 그래프, 집합, 테이블 등이 있습니다.큐(Queue)

  13. C 언어로 배우는 큐(Queue) 요소 삭제: 개념부터 실전 코드까지

    자료구조란 무엇인가?자료구조(Data Structure)는 데이터를 체계적이고 구조화된 형태로 조직적으로 관리하는 방식을 의미합니다. 자료구조는 크게 두 가지 유형으로 나눌 수 있습니다.선형 자료구조(Linear Data Structure) − 데이터가 일렬로 순차적으로 배치되는 구조입니다. 대표적인 예로는 배열(Array), 구조체(Structure), 스택(Stack), 큐(Queue), 연결 리스트(Linked List)가 있습니다.비선형 자료구조(Nonlinear Data Structure) − 데이터가

  14. 연결 리스트(Linked List) 요소 삭제 완벽 가이드: 개념부터 C 언어 구현까지

    연결 리스트란?연결 리스트(Linked List)는 동적 메모리 할당(dynamic memory allocation) 방식을 사용하는 자료구조입니다. 즉, 저장해야 할 데이터의 양에 따라 크기가 유동적으로 늘어나거나 줄어들 수 있습니다. 연결 리스트는 여러 개의 노드(Node)가 모여 이루어진 집합으로 정의되며, 각 노드는 두 부분으로 구성됩니다.데이터(Data): 실제로 저장하고자 하는 값링크(Link): 다음 노드를 가리키는 포인터데이터, 링크 및 연결 리스트 전체의 구조는 아래 그림과 같이 표현할 수 있습니다.연결 리스트의 주

  15. C 언어 연결 리스트로 스택(Stack) 구현하기: Push·Pop 완벽 정리

    C 언어에서 연결 리스트 기반 스택이란?스택(Stack)은 LIFO(Last In First Out, 후입선출) 방식으로 동작하는 대표적인 자료구조입니다. 배열을 이용해 스택을 구현하면 크기가 고정되기 때문에 스택 오버플로우(Stack Overflow)나 스택 언더플로우(Stack Underflow)가 발생하기 쉽습니다. 반면 연결 리스트(Linked List)를 활용하면 메모리를 동적으로 할당하므로 이러한 문제를 효과적으로 피할 수 있습니다.C 언어에서 스택에 수행할 수 있는 기본 연산은 다음 두 가지입니다.Push: 스택의 맨

  16. C 언어 연결 리스트를 활용한 큐(Queue) 구현 완벽 가이드

    연결 리스트(Linked List)를 사용하여 큐(Queue)를 구현하면 배열 기반 구현에서 발생할 수 있는 큐 오버플로우(Queue Overflow)와 큐 언더플로우(Queue Underflow) 문제를 효과적으로 방지할 수 있습니다. 연결 리스트는 동적 메모리 할당을 기반으로 하기 때문에 큐의 크기 제한 없이 유연하게 데이터를 관리할 수 있습니다.C 프로그래밍 언어에서 연결 리스트를 활용한 큐에서 수행되는 주요 연산은 다음과 같습니다.삽입(Insert)삭제(Delete)삽입(Insertion)새로운 노드를 큐의 뒤쪽(rear)에

  17. C 언어 선형 검색(Linear Search)으로 배열의 최소 요소 찾는 방법

    C 언어는 크게 두 가지 탐색(searching) 기법을 제공합니다.선형 검색(Linear Search)이진 검색(Binary Search)선형 검색이란?선형 검색은 배열의 처음부터 끝까지 순서대로 하나씩 비교하면서 원하는 키(key) 값을 찾아가는 방식입니다. 주요 특징은 다음과 같습니다.키 요소를 처음부터 끝까지 순차적으로(linear) 탐색합니다.가장 단순하고 구현하기 쉬운 탐색 기법입니다.배열이 정렬되어 있지 않아도 동작합니다.단점 − 데이터 양이 많을수록 시간이 오래 걸려 시스템 성능이 저하될 수 있습니다.입력과

  18. C 프로그래밍으로 구조체 변수 비교하기 – 선언, 초기화부터 실전 예제까지

    C 프로그래밍 언어에서 구조체(structure)는 서로 다른 자료형을 가진 변수들을 하나의 이름 아래 묶어 관리할 수 있게 해주는 사용자 정의 자료형입니다. 이 글에서는 구조체의 선언 방법, 변수 선언 및 초기화 과정을 살펴보고, 마지막으로 두 구조체 변수를 비교하는 실제 C 프로그램 예제까지 다뤄보겠습니다.구조체의 선언과 초기화구조체를 선언하는 일반적인 형식은 다음과 같습니다.struct tagname{ datatype member1; datatype member2; datatype member n; };각

  19. C언어로 이해하는 구조체 배열과 구조체 내부 배열의 차이

    개요C 프로그래밍 언어에서 구조체(structure)의 가장 대표적인 활용 방식은 바로 구조체 배열(array of structures)입니다. 구조체 배열을 선언하려면 먼저 구조체 자료형을 정의한 후, 해당 타입으로 배열 변수를 선언해야 합니다.struct book b[10]; // book 타입 구조체 배열의 요소 10개 선언이번 글에서는 구조체 배열과 구조체 내부에 포함된 배열의 차이를 두 가지 예제를 통해 살펴보겠습니다.예제 1: 구조체 배열다음은 구조체 배열을 활용하여 학생별 과목 점수 합계를 계산하는 C 프로그램입니다.s

  20. C 언어 지역 정적 변수(Local Static Variable)란 무엇인가?

    C 언어에서 지역 정적 변수(local static variable)는 선언된 함수의 호출이 종료되더라도 수명(lifetime)이 끝나지 않는 변수입니다. 이 변수는 프로그램 전체가 종료될 때까지 메모리에 유지되며, 함수가 여러 번 호출되더라도 모든 호출이 동일한 변수 하나를 공유합니다.이러한 특성 덕분에 지역 정적 변수는 주로 함수가 호출된 횟수를 세는 카운터로 활용됩니다. 또한 정적 변수는 초기화하지 않으면 기본값으로 0이 자동으로 설정됩니다.반면, 일반적인 지역 변수는 자신이 선언된 블록(중괄호 {}) 내부에서만 유효하며, 블

Total 1443 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:67/73  20-컴퓨터/Page Goto:1 61 62 63 64 65 66 67 68 69 70 71 72 73