[C언어] shell sort 프로그램

  • 등록일 / 수정일
  • 페이지 / 형식
  • 자료평가
  • 구매가격
  • 2007.11.07 / 2019.12.24
  • 5페이지 / fileicon zip (압축파일)
  • 평가한 분이 없습니다. (구매금액의 3%지급)
  • 1,200원
다운로드장바구니
Naver Naver로그인 Kakao Kakao로그인
[C언어] shell sort 프로그램
목차
#define MAXMAJOR 9 /*전공의 최대 크기*/
#define MAXNAME 10 /*이름의 최대 크기*/

typedef struct _people { // 학생 자력이 입력될 변수.
char *major; // 전공
char *name; // 이름
double point; // 학점
} people;

people *Get_DataFromFile(char *s, int *cnt); // 파일로 부터 자료를 받아오는 함수.
people *Save_Data(people *t, people *s, int n); // 자료를 다른 변수로 옮기는 함수.

char *Get_major(char *t); // 전공을 저장하는 함수.
char *Get_name(char *t); // 이름을 저장하는 함수.
void print_Data(int *index, people *t, int n); // 자료를 출력하는 함수.

int double_cmp(const people a, const people b); // 학점을 비교하는 함수.
int str_cmp(const people a, const people b); // 이름을 비교하는 함수.

void shell_sort(int *index, people *base, int nelem, int (*fcmp)(const people, const people)); // 정렬 함수.
본문내용
int main(int argc, char *argv[])
{
int i, cnt = 0;
people *data;
int *index;
char *s = "infile.txt";

if(argc == 1) data = Get_DataFromFile(s, &cnt); // 프로그램 시작할 때 파일명을 안주면 infile 오픈.

else{
data = Get_DataFromFile(*++argv, &cnt); // 프로그램 시작시 입력한 파일명으로 자료 저장.
}

index = (int *)malloc(sizeof(int) * cnt); // 인덱스 배열 생성.
for(i = 0; i < cnt; i++) index[i] = i;

shell_sort(index, data, cnt, str_cmp); // 이름순으로 정렬.
print_Data(index, data, cnt); // 출력.

printf("\n\n");

shell_sort(index, data, cnt, double_cmp); // 학점순으로 정렬.
print_Data(index, data, cnt); // 출력.

printf("\n\n");

free(index);
return 1;
}

people *Get_DataFromFile(char *s, int *cnt)
{

///////////////////////////////////////////////////////////////////////////
/*파일로 부터 자료를 저장하는 함수. 동적으로 배열을 생성하여 자료를 입력. /
/ 입력하면서 자료의 개수를 함께 증가시켜준다. */
///////////////////////////////////////////////////////////////////////////

char strbuf[10];
people *temp, *data;
FILE *in;

in = fopen(s, "r"); // 파일 오픈.
if(!in) { printf("File not found.\n"); return 0; } // file이 없는 경우 오류처리.

temp = (people *)malloc(sizeof(people)); // 이전 자료를 저장할 변수.

while(fscanf(in, "%s", strbuf) != EOF) {

data = Save_Data(temp, data, *cnt); // 자료를 저장할 구조체를 선언하고 이전 자료 저장.

data[*cnt].major = Get_major(strbuf); // 전공 저장.
if(fscanf(in, "%s", strbuf) != EOF) { data[*cnt].name = Get_name(strbuf);} // 이름 저장.
if(fscanf(in, "%s", strbuf) != EOF) { data[*cnt].point = atof(strbuf);} // 학점 저장.

*cnt += 1; // 카운터 증가.
temp = Save_Data(data, temp, *cnt); // 이전 자료를 저장.

}

fclose(in);
free(temp);
return data;
}
자료평가
    아직 평가한 내용이 없습니다.
회원 추천자료
  • [자료구조,컴퓨터,실습,충남대] [자료구조1] 실습1~14주
  • C언어를 기본으로 작성y 파일생성시 파일명 뒤에 .c를 붙여 c파일을 생성할 것(붙이지 않으면 .cpp파일이 생성됨)y 프로그램 주석을 자세히 작성y 올바른 코드작성 방법 사용y 변수,함수의 기능을 충분히 표현하는 변수명,함수명 사용(변수명,함수명 길어도 무방)y while(1), break;의 사용을 자제한다.31FILE:DS106/sparse matrix/input.txt6 615 0 0 22 0 -150 11 3 0 0 00 0 0 -6 0 00 0 0 0 0 091 0 0 0 0 00 0 28 0 0 0FILE:DS106/sparse matrix/sparse matrix.c#include#define MAXTERMS

  • [전산개론] 인터넷서비스와 프로토콜
  • 프로그램(shell)을 실행한다. ② Shell -Shell이란 DOS의 command.com과 비슷한 역할을 하는 프로그램 으로 명령을 입 력받아 이를 해석하고 처리해 주는 역할을 수행합 니다. Unix는 Multichoice 환경으로 사용자가 이를 선택해서 사용 할 수 있습니다. 많이 사용하는 shell로는 Bourne shell과 C shell 그리고 korn shell등이 있다. 자신의 shell이 무엇인지 알고 싶으신 분은 지금 다음을 입력해 보 십시오. %ps -f 만약 제일 마지막에 sh 라고 나오면 Bourne shell을 쓰고 있는 것이

  • 운영체제론 시험대비(총정리)
  • 프로그램ex) 제어 카드 해석기, 명령 라인 해석기, 쉘(shell), 매킨토시 해석기 등→ 다음 명령문을 가져와서 수행하는 기능3.2 운영체제 서비스(Operating-System Services): “서비스 측면”▶ 편리성 측면: 1)-5) ↔ 효율성 측면: 6)-8)1) 프로그램 수행(program execution)- 기억장치에 프로그램 적재 및 실행- 정상적 혹은 비정상적 종료2) 입출력 동작(I/O operation)- 파일이나 입출력장치의 지정- 특수 장치에 대한 특수 기능 제공- 효율과 보호를 위해 운영체제에 의

  • 컴퓨터 원론 전반에 대하여....
  • 프로그램이다.④ Utility Program어떤 데이터 기억매체로부터 기억매체로 데이터를 전하거나, 또는 시스템 운영상의 기타 보조적인 기능을 수행하도록 작성된 프로그램 그룹을 의미한다. 전자를 사용자 Utility Program, 후자를 시스템 Utility Program이라고 한다.C.문제처리 프로그램컴퓨터시스템의 사용자가 자신의 업무상의 문제를 컴퓨터로서 처리하기 위하 여 작성된 프로그램을 의미한다. 이러한 프로그램 중 장기간 자주 사용하는 것들은 일반적으로 시

  • 전자정보통신 약어정리
  • 언어, 자동프로그램 도구AQ Adaptive QuantizationAQF Forward Adaptive QuantizationAR Argument RegisterAR AutoregressiveARA AppleTalk Remote Access, 애플토크 원격 접속ARB Address Reorder BufferARC Audio Response Control, 음성 응답 제어ARCnet Attached Resource Computer Network, 에이아르시네트ARD Allcache Routing and Directory cellARE Audio Response Equipment, 음성 응답 장치ARM Advanced RISC MachinevARM Asynchronous Response Mode, 비동기 응답 방식ARP Address Resolution Protocol, 에이아르피, 어드레스 도출 프로토콜, 번지 도

오늘 본 자료 더보기
  • 오늘 본 자료가 없습니다.
  • 저작권 관련 사항 정보 및 게시물 내용의 진실성에 대하여 레포트샵은 보증하지 아니하며, 해당 정보 및 게시물의 저작권과 기타 법적 책임은 자료 등록자에게 있습니다. 위 정보 및 게시물 내용의 불법적 이용, 무단 전재·배포는 금지됩니다. 저작권침해, 명예훼손 등 분쟁요소 발견시 고객센터에 신고해 주시기 바랍니다.
    사업자등록번호 220-06-55095 대표.신현웅 주소.서울시 서초구 방배로10길 18, 402호 대표전화.02-539-9392
    개인정보책임자.박정아 통신판매업신고번호 제2017-서울서초-1806호 이메일 help@reportshop.co.kr
    copyright (c) 2003 reoprtshop. steel All reserved.