반응형
C언어.
이미 만들어져있고 데이터가 있는 txt 파일을 읽어들여 버블정렬하여 다른 txt파일로 출력하는 소스 코드입니다.
주석으로 간단하게 설명을 붙여두었습니다.
제일 아래에 파일을 첨부해뒀습니다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void printArray(int* ,int ); // 함수 선언
void swap(int* , int*);
void main() {
int i, k;
int data[5];
int maxindex;
FILE *fp = NULL;
fp = fopen("qwer.txt", "r"); // 파일 열기, 이때 qwer.txt 라는 파일이 소스폴더 내에 있어야 함.
if (fp == NULL) { // 파일을 열기를 성공/실패 했을 경우
printf("파일 열기 실패\n");
exit(1); // 강제 종료
}
else
printf("파일 열기 성공\n");
k = 0;
while (fscanf(fp, "%d", &i) != EOF) { // 파일 내 데이터를 읽어들임
data[k] = i;
k++;
}
fclose(fp); // qwer.txt 파일을 닫음.
printArray(data, 5);
printf("\n");
for (k = 0 ; k < 5 ; k++) { // 버블 정렬 소스 시작
for (i = 0 ; i< 4 - k ; i++) {
if ( data[i] > data[i+1] ) {
swap(&data[i+1], &data[i]);
}
}
} // 버블 정렬 소스 끝
printArray(data, 5);
fp = fopen("output.txt", "w"); // 소스가 있는 폴더 내에 output.txt라는 파일이 생성됨.
for (k = 0; k<5; k++) {
fprintf(fp, "%d ", data[k]);
}
fclose(fp); // output.txt 파일을 닫음.
}
void printArray(int array[], int size) { // 배열을 출력해주는 함수
int i;
for (i = 0; i<size; i++) {
printf("%d ", array[i]);
}
printf("\n");
}
void swap(int *num1, int *num2) { // 위치 바꾸는 함수
int temp;
temp = *num2;
*num2 = *num1;
*num1 = temp;
}
반응형
LIST
'프로그램 > C언어' 카테고리의 다른 글
【C언어】 기존 데이터와 입력받은 값을 비교 및 위치를 출력하는 소스코드 (0) | 2017.11.22 |
---|---|
【C언어】 버블정렬 기본코드 예시 (0) | 2017.11.06 |
【C언어】 빙고 게임 코드 예시 (0) | 2017.10.25 |