C 언어의 rename() 함수는 파일이나 디렉터리의 이름을 기존 이름(oldname)에서 새 이름(newname)으로 변경하는 표준 라이브러리 함수입니다. 이 동작은 파일을 옮기는 이동(move) 연산과 본질적으로 같기 때문에, rename() 함수를 활용하면 파일을 다른 경로로 이동시키는 용도로도 사용할 수 있습니다.rename() 함수는 표준 입출력 헤더 파일인 stdio.h에 선언되어 있으며, 별도의 설치 없이 바로 사용할 수 있습니다.rename() 함수 문법int rename(const char *oldname, cons
파일과 디렉터리의 기본 개념파일(file)은 디스크 상에 데이터가 실제로 저장되는 물리적인 위치를 의미하며, 디렉터리(directory)는 파일을 체계적으로 정리하기 위한 논리적인 경로입니다. 모든 파일은 반드시 하나의 디렉터리 안에 존재합니다.프로그래밍에서 파일에 대해 수행할 수 있는 기본 연산은 크게 세 가지입니다.파일 열기파일 처리(읽기, 쓰기, 수정)파일 저장 후 닫기C 프로그램 코드다음은 입력 파일의 정수를 읽어 짝수, 홀수, 소수를 각각 별도의 파일에 저장하는 C 프로그램입니다.#include <stdio.h>
파일(file)은 디스크 상의 물리적 저장 위치를 의미하고, 디렉터리(directory)는 파일을 체계적으로 관리하기 위한 논리적 경로입니다. 모든 파일은 반드시 하나의 디렉터리 안에 존재합니다. C 언어에서 파일에 대해 수행할 수 있는 기본 작업은 크게 세 가지입니다. 파일 열기 파일 처리(읽기, 쓰기, 수정) 파일 저장 후 닫기 알고리즘 다음은 C 프로그램으로 파일에서 특정 줄을 삭제하는 전체 절차를 나타낸 알고리즘입니다. 1단계 - 실행 시점에 파일 경로와 삭제할 줄 번호를 입력받습니다. 2단계 - 원본 파일을 읽기 모드
이 글에서는 C 프로그래밍 언어에서 for 반복문을 사용하여 속이 빈 직사각형 별(*) 패턴을 출력하는 방법을 알아봅니다.아래 예시를 통해 살펴보겠습니다.입력 예시Enter number of rows: 5출력 결과***** * * * * * * *****알고리즘for 반복문으로 속이 빈 직사각형 별 패턴을 출력하는 과정은 다음과 같은 단계로 구성됩니다.1단계 − 실행 시점에 출력할 행(row)의 개수를 입력받습니다.2단계 − 행을 처리하기 위해 1부터 N까지 반복하는 외부 for 루프를 사용합니다.f
파일(file)은 디스크에 존재하는 물리적인 저장 공간이며, 디렉터리(directory)는 파일을 체계적으로 정리하기 위한 논리적인 경로입니다. 하나의 파일은 반드시 어떤 디렉터리 안에 존재하게 됩니다. 파일에 대해 수행할 수 있는 기본 작업은 크게 세 가지입니다. 파일 열기 파일 처리(읽기, 쓰기, 수정) 파일 저장 후 닫기 예제 소개 간단한 예제를 통해 살펴보겠습니다. 쓰기 모드로 파일을 엽니다. 파일에 문장을 입력합니다. 입력 파일의 내용은 다음과 같습니다. Hi welcome to my world This is C p
함수(function)란 특정하고 명확하게 정의된 작업을 수행하는 독립적인 코드 블록입니다. C 언어에서 함수는 프로그램을 모듈 단위로 구조화하는 핵심 요소이며, 함수가 올바르게 호출되기 위해서는 함수 프로토타입(prototype)에 대한 이해가 필수적입니다. 함수의 종류 C 언어의 함수는 크게 두 가지 유형으로 분류할 수 있습니다. 라이브러리 함수(Predefined functions): 컴파일러와 표준 라이브러리에 미리 정의되어 제공되는 함수 (예: printf, scanf) 사용자 정의 함수(User defined funct
문제 정의실행 시점에 사용자가 입력한 값 n을 기준으로, 1부터 n 사이에 존재하는 모든 소수(prime number)를 화면에 출력하는 C 프로그램을 작성하는 것이 이번 글의 목표입니다.소수란 무엇인가?소수는 1과 자기 자신만을 약수로 가지는 1보다 큰 자연수입니다. 예를 들어 2, 3, 5, 7, 11 등이 소수에 해당하며, 4나 6처럼 1과 자신 외에 다른 약수를 가지는 수는 합성수라고 부릅니다.해결 접근 방식각 숫자가 소수인지 판별하려면 해당 숫자를 2부터 그 숫자의 절반까지 나누어 나머지가 0이 되는 경우, 즉 약수가 존재
문제 개요 이번 글에서는 다음 급수식의 합을 계산하는 C 프로그램을 살펴보겠습니다. Sum = 1 - n²/2! + n⁴/4! - n⁶/6! + n⁸/8! - n¹⁰/10! 사용자는 프로그램 실행 중에 n 값을 직접 입력하며, math.h 헤더 파일에 미리 정의되어 있는 거듭제곱 함수 pow()를 활용해 급수의 합을 구하게 됩니다. 해결 방법 급수의 각 항은 두 부분으로 나눌 수 있습니다. 분자는 num의 짝수 거듭제곱(pow(num, i))이고, 분모는 해당 차수의 팩토리얼(i!)입니다. 차수가 2, 6, 10인 항은 음수(-)
문제 정의C 프로그래밍 언어에서 재귀 함수(recursive function)를 활용하여 주어진 두 수의 최대공약수(GCD, Greatest Common Divisor)를 구하는 프로그램을 작성하는 것이 이번 글의 목표입니다.해결 접근 방법최대공약수는 유클리드 호제법(Euclidean algorithm)을 기반으로 구할 수 있습니다. 두 수 중 큰 수를 작은 수로 나눈 나머지를 구하고, 이 과정을 나머지가 0이 될 때까지 반복하면 그 시점의 값이 곧 최대공약수가 됩니다. 이 반복 과정을 함수가 자기 자신을 호출하는 재귀 방식으로 구
문제 정의주어진 두 정수의 최대공약수(GCD, Greatest Common Divisor)를 재귀 함수를 사용하지 않고 구하는 것이 이번 문제의 목표입니다.해결 방법두 수의 최대공약수는 유클리드 호제법(Euclidean Algorithm)을 활용하면 효율적으로 구할 수 있습니다. 아래에서는 반복(비재귀) 방식으로 GCD를 계산하는 절차와 C 프로그램 예제를 소개합니다.알고리즘다음은 재귀 호출 없이 두 수의 최대공약수를 구하는 알고리즘입니다.1단계 − 시작합니다.2단계 − 두 개의 정수 a와 b를 입력받습니다.3
문제 개요이 글에서는 주어진 문자열의 특정 위치에서 n개의 문자를 삭제하는 사용자 정의 함수를 C 언어로 작성하는 방법을 알아봅니다. 여기서 문자열은 프로그램 실행 중에 사용자로부터 직접 입력받습니다.해결 접근 방식핵심 아이디어는 간단합니다. 삭제를 시작할 위치(p)와 삭제할 문자 수(n)를 입력받은 뒤, 반복문을 돌면서 해당 위치에 도달하면 인덱스를 n만큼 건너뛰어 나머지 문자들을 앞으로 당겨오면 됩니다.알고리즘다음은 주어진 문자열에서 n개의 문자를 삭제하기 위한 알고리즘입니다.1단계 − 시작2단계 − 실행
문제 정의두 개의 수 x와 n을 입력받아 아래와 같은 등비수열의 합을 계산하는 프로그램을 작성해 보겠습니다.1 + x + x² + x³ + x⁴ + …… + xⁿ계산이 완료되면 x, n 그리고 합(sum)을 화면에 출력합니다.해결 방법C 언어에서는 math.h 헤더 파일에 포함된 pow() 함수를 사용하면 각 항의 거듭제곱 값을 손쉽게 구할 수 있습니다. 반복문과 함께 이 함수를 활용하면 등비수열의 합을 간단하게 계산할 수 있습니다.알고리즘등비수열의 합을 계산하는 알고리즘은 다음과 같습니다.1단계 – 시작2단계 – 반복 지점3단계
컴퓨터 시스템에서 음수를 표현하거나 뺄셈 연산을 처리할 때 보수(complement) 개념이 핵심적으로 사용됩니다. 이 글에서는 C 언어를 사용하여 주어진 이진수에 대한 1의 보수와 2의 보수를 구하는 방법을 예제와 함께 단계별로 살펴보겠습니다.먼저 개념을 간단히 정리하면 다음과 같습니다.1의 보수: 이진수의 모든 비트를 반전시킵니다. 즉, 0은 1로, 1은 0으로 바꿉니다.2의 보수: 1의 보수를 구한 뒤 최하위 비트에 1을 더하면 됩니다.예제다음 예제를 통해 동작 과정을 확인해 보겠습니다.입력은 다음과 같습니다.이진수를 입력하세
C 언어를 활용하면 로마 숫자를 간단한 알고리즘만으로 십진수로 변환할 수 있습니다. 이 글에서는 변환 원리, 단계별 알고리즘, 전체 소스 코드, 그리고 실제 실행 결과까지 차근차근 살펴보겠습니다. 로마 숫자 변환의 기본 원리 로마 숫자는 다음 일곱 가지 기호로 구성되며, 각 기호는 고유한 값을 가집니다. I = 1 V = 5 X = 10 L = 50 C = 100 D = 500 M = 1000 기본적으로 왼쪽에서 오른쪽으로 값을 더해 나가지만, 작은 값이 큰 값보다 앞에 오면(예: IV = 4, IX = 9) 해당 값을 빼는
C 프로그래밍 언어에서 버블 정렬(bubble sort)은 가장 간단한 정렬 기법으로, 교환 정렬(exchange sort)이라고도 불립니다. 인접한 두 요소를 반복적으로 비교하며 큰 값을 뒤로 밀어내는 방식으로, 마치 물속의 거품이 위로 떠오르는 모습과 비슷하다고 하여 이런 이름이 붙었습니다. 버블 정렬의 동작 원리 목록의 첫 번째 요소를 나머지 요소들과 차례대로 비교하고, 순서가 맞지 않으면 서로 교환(swap)합니다. 모든 요소가 정렬될 때까지 이 과정을 반복합니다. 알고리즘 다음은 버블 정렬 기법을 사용하여 주어진 숫
문제 정의 이번 글에서는 선형 회귀(linear regression) 알고리즘을 구현하는 C 프로그램을 작성해 보겠습니다. 사용자는 먼저 입력할 데이터 값의 총 개수(n)를 지정한 뒤, 각 데이터의 x와 y 값을 차례로 입력하게 됩니다. 선형 회귀란? 선형 회귀는 관찰된 데이터에 직선 방정식을 적용하여 두 변수 사이의 관계를 찾아내는 통계 기법입니다. 이때 하나의 변수는 설명 변수(독립 변수, x) 역할을 하고, 다른 하나는 종속 변수(y) 역할을 합니다. 구하고자 하는 것은 다음 형태의 직선 방정식입니다. y = mx + c
회귀 분석이란?회귀(Regression)는 종속 변수(dependent variable)와 독립 변수(independent variable) 사이의 관계를 규명하여 미래 값을 예측하는 데 사용되는 대표적인 예측 모델링(predictive modelling) 기법입니다. 데이터 속에 숨겨진 패턴을 수학적 함수로 표현함으로써, 새로운 입력 값에 대한 출력 값을 추정할 수 있습니다.다항 회귀(Polynomial Regression)란?다항 회귀는 독립 변수 x와 종속 변수 y 사이의 관계를 x에 대한 n차 다항식 형태로 모델링하는 회귀
C 언어에서 연산자란 무엇인가?연산자(Operator)는 하나 이상의 객체(피연산자)에 적용되는 연산을 나타내는 기호입니다. 연산자는 주로 표현식(expression)에서 의미를 가지지만, 선언문에서도 사용될 수 있습니다. 일반적으로 영숫자가 아닌 특수 문자들로 이루어진 짧은 시퀀스 형태를 띱니다.예를 들어 a + b에서 +는 두 값을 더하는 산술 연산자이며, x && y에서 &&는 논리곱을 수행하는 연산자입니다.구두점(Punctuator)이란?구두점(Punctuator)은 요소들의 목록을 분리하거나 종
문제 유클리드 호제법(Euclids Algorithm)을 구현하여 두 정수의 최대공약수(GCD)와 최소공배수(LCM)를 구하고, 입력받은 두 정수와 함께 결과를 출력하는 C 프로그램을 작성해 보겠습니다. 유클리드 호제법이란? 유클리드 호제법은 두 수의 최대공약수를 구하는 가장 고전적이고 효율적인 알고리즘입니다. 큰 수를 작은 수로 나눈 나머지를 구하고, 이 나머지와 작은 수를 다시 나누는 과정을 반복하다가 나머지가 0이 되면 그때의 나누는 수가 곧 최대공약수가 됩니다. 또한 최소공배수는 다음 관계식을 이용해 간단히 구할 수 있습니
10진 소수를 2진 소수로 변환하는 원리C 프로그래밍에서 10진 소수를 2진 소수로 변환할 때는 두 가지 방식이 사용됩니다. 정수 부분은 2로 나눈 나머지를 역순으로 모으고, 소수 부분은 2를 곱한 뒤 정수 부분을 순서대로 기록합니다. 아래 예제를 통해 변환 과정을 자세히 살펴보겠습니다.예제 1: 정수 25를 2진수로 변환정수는 2로 계속 나누면서 나머지를 기록합니다.1단계 – 25 ÷ 2 → 나머지: 1, 몫: 122단계 – 12 ÷ 2 → 나머지: 0, 몫: 63단계 – 6 ÷ 2 → 나머지: 0, 몫: 34단계 – 3 ÷ 2