본문 바로가기
C언어

[C언어] 문자열을 가리키고 있는 포인터의 배열을 인수로 받아서 문자열을 알파벳순으로 정렬시키는 함수 sort_strings()를 작성하고 테스트해보자

by 이얏호이야호 2020. 5. 5.

알파벳순으로 정렬시키는 함수 sort_strings()를 가지고 왔습니다.

물론 단번에 코드를 본다면 좋기야 하겠지만 장기적으로 봤을 때

혼자 풀어보기 -> 힌트 -> 코드 보기 순으로 공부하시는 게 실력 향상에 큰 도움이 됩니다!

힌트를 보고 천천히 생각을 거쳐서 문제를 풀어보시고

답안을 확인해보세요

 

더보기

sort_strings(char *list[], int size)

에서

for문을 두 개 돌려서 최소값을 탐색하고 원소의 위치를 교환하는 프로그램을 작성해주면됩니다

기본틀입니다.

#include <stdio.h>

void sort_strings(char *s[], int size);

int main(void) {

	int i;

	char *s[3] = {

		"c", "b", "a"

	}

	;

	sort_strings(s, 3);

	for (i=0;i<3;i++)

	printf("%s\n", s[i]);

	return 0;

}

void sort_strings(char *list[], int size) {
	//최소값을 탐색하고
    //위치를 교환해주는 프로그램을 작성

}

 

더보기
#include <stdio.h>

void sort_strings(char *s[], int size);

int main(void) {

	int i;

	char *s[3] = {

		"c", "b", "a"

	}

	;

	sort_strings(s, 3);

	for (i=0;i<3;i++)

	printf("%s\n", s[i]);

	return 0;

}

void sort_strings(char *list[], int size) {

	int i, j, least;

	char *temp;

	for (i = 0; i < size-1; i++) {

		least = i;

		// i번째 값을 최소값으로 가정

		for (j = i + 1; j < size; j++) // 최소값 탐색

		if(strcmp(list[j], list[least]) < 0)

		least = j;

		// i번째 원소와 least 위치의 원소를 교환

		temp = list[i];

		list[i] = list[least];

		list[least] = temp;

	}

}

 

 

더 많은 C언어 글이 궁금하다면?

https://chuinggun.tistory.com/category/C%EC%96%B8%EC%96%B4

 

댓글