반응형
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언어를 학습하는것도 좋을것 같다.
반응형
'개발 > 기타' 카테고리의 다른 글
[jsTree] Spring + jstree 트리예제 (0) | 2023.04.07 |
---|---|
[React] react v18 필수개념 컴포넌트+props 예제 (0) | 2023.04.04 |
[Google Chart] 구글차트 json연동 예제 (x,y축) (0) | 2023.04.04 |
SQL 쿼리문 예제모음 초급용 30개 (0) | 2023.03.28 |
SQL 쿼리문 예제모음 30개 및 쿼리도구 추천 (0) | 2023.03.26 |