본문 바로가기
개발/기타

c언어 자료구조, 버블정렬 예제모음

by 아크투어 2023. 3. 19.
반응형

1. 개요

  • C언어의 자료구조 관련하여 예제모음이다.
  • 자료구조의 배열과 버블정렬 예제를 테스트한다.

 

 

2. C언어의 유래

  • C는 1972년 켄 톰슨과 데니스 리치가 벨 연구소에서 일할 당시 새로 개발된 유닉스 운영 체제에서 사용하기 위해 개발한 프로그래밍 언어이다.
  • 유닉스 시스템의 바탕 프로그램은 모두 C로 작성되었고, 수많은 운영 체제의 커널 또한 C로 만들어졌다.
  • 오늘날의 널리 쓰이는 거의 모든 운영 체제 커널이 C를 이용해 구현된 이유이기도 하다. 이처럼 C는 시스템 프로그램 개발에 매우 적합하지만, 응용 프로그램 개발에도 많이 쓰이기도 한다.
  • C 언어 함수는 표준함수가 있고, 개발 툴에서 제공하는 함수가 있다. 여러 가지 부류가 있고 특성 별로 나누어 lib 파일로 코드를 제공하고 헤더파일로 선언을 알 수 있다.

 

 

3.  개발도구

개발도구 상세설명
Eclipse IDE for C/C++ Developers C/C++언어를 제공하는 IDE으로 리눅스의 경우 기존의 gcc을 사용할 수 있도록 연결 설정만 하면 된다.
Microsoft Visual Studio 마이크로소프트에서 개발, 판매하는 마이크로소프트 윈도우 환경에서 작동하는 개발도구이다. 현재는 C 뿐만 아니라 C++, C# 등 다양한 언어를 지원하고 있지만 초기의 마이크로소프트 개발 도구는 C 언어로부터 출발하였다. 비주얼 스튜디오로는 윈도우 API를 이용한 GUI 프로그램, 명령 줄 인터페이스 환경으로 실행되는 Windows Console Application, 윈도우 서비스, 동적 링크 라이브러리 등의 형태로 소프트웨어를 개발할 수 있고, 최근 버전에서는 모바일 응용 소프트웨어 개발도 지원한다.
MAKE 여러 파일들끼리의 의존성과 각 파일에 필요한 명령을 정의함으로써 프로그램을 컴파일할 수 있으며 최종 프로그램을 만들 수 있는 과정을 서술할 수 있는 표준적인 문법을 가지고 있고, 구조로 기술된 파일(주로 Makefile이라는 파일명)을 [make]가 해석하여 프로그램 빌드를 수행하게 된다.
Cygwin gcc을 윈도우에서 실행할 수 있도록 재 포팅한 것이다.
GCC 원래는 C언어만 지원하여 GNU C Compiler였다가 추후 타 언어로의 기능 확장으로 이름이 변경됨
따라서 이름은 GCC이지만, 실제로 C++ 언어도 컴파일이 가능함

 

 

 

4. 자료구조 [배열] 

  • 입력한 문자열의 길이 계산하기 프로그램
#include <stdio.h>

void main()
{
	int i , length=0;
	char str[50];
	printf("\n 문자열을 입력하세요 : ");
	gets(str);

	printf("\n 입력된 문자열은 \n\"");
	for(i=0; str[i]; i++)
	{
		printf("%c" , str[i]);
		length+=1;
	}
	printf("\n입력된 문자열의 길이는 = %d\n" , length);

	getchar();
}

 

 

5. 자료구조 [배열] 

  • 배열에 문자열 입력프로그램
#include <stdio.h>

void main()
{
	char str[20] = "Data Structure!";
	int i;
	printf("\n문자배열 str[] : ");
    
	for(i=0; str[i]; i++)
	{
		printf("%c" , str[i]);
	}

	getchar();
}

 

 

6. 자료구조 [배열] 

  • 1차원 배열 - 학년별 취득학점 입출력하기
#include <stdio.h>

void main()
{
	int i;
	int score[3] = {90,86,97};
	char grade[3] = {'A' , 'B' , 'C'};

	printf("\n *** 학년별 취득 학점 ***\n\n");

	for(i=0; i<3; i++)
	{
		printf("%3d 학년 : 총점 = %d , 등급 = %c\n" , i+1 , score[i] , grade[i]);
	}
	getchar();
}

 

 

7 자료구조 [배열] 

  • 입력받은 숫자에 대한 구구단을 1차원 배열에 저장하고 배열의 내용을 출력하여 보여주는 프로그램
#include <stdio.h>

main()
{
	int i , num;
	int temp[10];

	printf("입력받을 구구단 단 은 : \n");
	scanf("%d" , &num);

	if(num<10)
	{
		for(i=1; i<10; i++)
		{
			temp[i] = num*i;
			printf("%d*%d=%d\n" , num , i , temp[i]);
		} 
	}
	return 0;
}

 

8. 버블정렬

  • 버블정렬 예제소스
#include <stdio.h>
#include <stdlib.h>

int Cnt = 0;

int main(void)
{
	int list[30];
	int k;
	int i , j , temp;

	printf("몇개의 수를 입력하실것입니까?\n");
	scanf("%d" , &Cnt);

	for(k=0; k<Cnt; k++)
	{
		printf("원하는 수를 입력하십시오\n");
		scanf("%d" , &list[k]);
	}
 
	for(i=0; i<Cnt-1; i++)
	{
		for(j=1; j<Cnt; j++)
		{
			if(list[j-1]  > list[j])
			{
				temp = list[j-1];
				list[j-1] = list[j];
				list[j] = temp;
			}
		}
	}

	for(i=0; i<Cnt; i++)
	{
		printf("%3d\n" , list[i]);
	}
 	return 0;
}

 

 

9. 마무리

 

요즘 C언어를 다루는 곳을 흔히 찾아볼수는 없다. 하지만 프로그래밍에 입문하는 개발자라면 C언어는

필수 코스라고 생각한다. 새로운 언어가 많지만 한번쯤은 C언어를 학습하는것도 좋을것 같다.

반응형