본문 바로가기

C 언어/임베디드 C

버블 정렬 버블 정렬이란 인접해 있는 두 개의 값을 비교해서 자료 교환을 하는 것이다. 오름차순은 두 개의 값을 비교해서 큰 값을 오른쪽으로 보내는 방식이다. 내림차순은 두 개의 값을 비교해서 작은 값을 오른쪽으로 보내는 방식이다. //버블 정렬 프로그램 #include void bubble_sort(int array[], int count); void swap(int *px, int *py); void printVector(int V[], int n); int main() { int vector[5] = {5, 4, 3, 2, 1}; bubble_sort(vector, 5); } void bubble_sort(int array[], int count) { int i, j; for(i=0; iarray[]는 배열처.. 더보기
리다이렉션(redirection) 리다이렉션이란 표준입력장치인 키보드나 표준출력장치인 스크린을 대상으로 작성된 프로그램에서 키보드나 스크린을 대신 입력이나 출력을 다른 파일로 바꾸어 주는 것을 말한다. //키보드로부터 입력받은 문자를 화면에 출력하는 프로그램 #include #include //리눅스에선 인식안됨 int main() { char ch; while((ch=getchar()) != '\x1A') { putchar(ch); } return 0; } '\x1A'는 ctrl+Z키에 해당하는 아스키 코드이며, 프로그램은 ctrl+Z를 누르면 종료된다. 이 프로그램은 키보드를 통해서 입력받은 문자들을 화면에 출력시킨다. 이 때 키보드 대신 d11-11.in 파일을 통하여 입력하고 싶을 때는 다음과 같이 리다이렉션시킨다. C:> p11.. 더보기
구조체를 사용한 파일 입출력 /*학생의 레코드를 키보드로부터 입력받아 write()함수를 이용하여 구조체 단위로 * 파일에 기록하고, 다시 열어서 read()함수로 읽어서 화면에 출력하는 프로그램*/ #include #include #include #include typedef struct //STUDENT 구조체의 정의 { int id; //학생번호 char name[20]; int year, month, day; } STUDENT; int main() { STUDENT st; int infd, outfd; //출력파일의 생성 if((outfd = creat("d11-10.out", S_IREAD | S_IWRITE)) 더보기
malloc(), free() malloc함수 -> 메모리 동적 할당(heap) free함수 -> 메모리 반환 malloc함수를 다 쓰고 난 뒤에는 free함수를 써주는 것이 좋다. //i부터 입력받은 수까지 아스키 코드를 출력하는 프로그램 #include int main() { int i; char SIZE; char *p; printf("사이즈 입력 : "); scanf("%d", &SIZE); p = (char *)malloc(sizeof(char)*SIZE); for(i=0; i 더보기
달팽이 배열 [달팽이 배열] N*N 정방행렬에 달팽이 집과 같은 순서로 데이터를 저장한다. 달팽이 배열은 배열의 크기나 시계 방향 또는 반시계 방향 어디든지 상관 없으나, 이 문제에서는 외부에서 중심까지 시계 방향으로 회전시키는 경우를 다룬다. ※ 4X4 달팽이 배열을 분석하시오. ※ 5X5 달팽이 배열을 분석하시오. 1. 4X4 정방행렬에 달팽이 집과 같은 순서로 숫자 1부터 차례대로 기억시킨 후, 그 값을 출력하시오. #include int main() { int x; int i = 0; int j = 0; int val = 0; int arr[4][4]; // 달팽이 모양으로 입력 for(x=0; x 왼쪽 { arr[i][j] = ++val; } for(i=4-x-2, j=x; i>x ;--i) //아래 -> .. 더보기