C언어 35

[C소스] 마방진(2보다 큰 모든 정수에 가능함) / 짝수마방진 홀수마방진 겸용 /

#include // 단순히 두 수를 swap해주는 함수 void swap(int *num1,int *num2){ int temp; temp = *num1; *num1 = *num2; *num2 = temp; } // 마방진 출력함수 void print_mbj(int size, int mbj[][size]){ int i, j; for ( i = 0 ; i < size ; i++ ){ for ( j = 0 ; j < size ; j++ ){ printf("%d\t",mbj[i][j]); } printf("\n\n\n"); } } // 홀수 마방진 만드는 함수 void make_odd(int size, int mbj[][size]){ int number; int row = 0;//시작 위치 가로 세로 int..

c언어 세미나...

1. if와 if else if 영어로 우리는 "만약에" 라고하져... if 의 문법은 다음과 같습니다. if ( 조건부 ) { 실행부 } 조건부가 맞는다면 실행부가 실행됩니다. 예를 들어, int i = 0; if ( i == 0 ) { printf("%d\n",i); } 이런 것이 메인에 있다면, i 가 0과 같다면, printf가 실행되고, 그게 아니면 if문을 건너 띄고 실행됩니다. 영어에서 if가 있다면 else도 있습니다. else는 if와 붙어서 "그렇지 않다면" 이라고하져... else의 문법은 if와 비슷합니다. if ( 조건부1 ){ 실행부1 }else if( 조건부2 ) { 실행부2 }else{ 실행부3 } 조건부1에 맞다면 실행부 1이 실행되고 조건부2에 맞다면 실행부2.. 조건부1..

[데이터구조]c언어 복습

1. Align > 메모리가 cpu의 bit수에 맞춰서 사용되는 것 ex) char + int > 5byte가 아니라 8byte가 된다.(32bit cpu기준) Memory(□ : 미사용 , ■ : 사용 ) ■□□□ > char 1byte를 사용하고 Align에 의해 3byte가 더 소비된다. ■■■■ > int 4byte를 사용한다 □□□□ ┐ □□□□ ┘> 미사용 메모리... 2. 파라매터 이름( 용어 중요 ) ┌actual : Main └formal : function 3. 포인터 ⓐ 선언 : int *p; > p의 타입이 인트가 아니라 p가 가르키는 것이 int이다. ⓑ p = (int *)malloc(sizeof(int)); > 메모리 할당 ⓒ free(p); > free를 통해서 메모리의 효율..

[C언어] 예약어 typedef

> tepedef는 이미 사용하고 있는 자료형의 이름을 새롭게 지정할 때 사용하는 예약어이다. ex ) typedef int in typedef long lo ---------------- #define in int #define lo long 과 같은 의미를 가집니다. 하지만 이것에는 약간의 차이가 존재합니다. ex) #define PTR int * PTR ptr01, ptr02; 위와 같이 define을 통해서 int * 포인터 지정을 선언하면, 컴퓨터는 이렇게 받아 들입니다. int *ptr01, ptr02; > ptr01은 int 포인터 변수이고, ptr02는 int 변수로써 사용이 가능하게 됩니다. 이와 다르게 typedef를 사용하면 이렇게 됩니다. typedef int * PTR PTR pt..

[C언어] 유니온 union 열거형 enum

1. 유니온(union) 1) 선언과 사용방법에 있어서는 구조체와 동일하다. 2) 메모리 할당 방식에서 구조체와 차이가 있다. > 멤버중에서 가장 큰 자료형의 크기로 메모리가 할당 > 멤버 변수들이 동일한 기억공간에 중복되어 할당 3) 예약어 union을 사용한다, ex) union data{ char ch; int num; }; cf) struct data{ char ch; int num; }; 2. 열거형 1) 사용자가 필요에 의해서 만들어 사용하는 자료형 2) 예약어 enum을 사용 3) 열거형으로 선언된 변수는 집합에 포함되는 상수값만을 갖게된다. 4) 처음에 기술된 열거상수는 0 을가지고 차례로 1씩 증가한다, ex) enum exam_{a,b,c,d,e}; exam_ test; --------..

[c언어] c언어의 장점

1)전산 이론 및 실무 적용상에 절대적으로 필요한 제어 구조, 자료 구조 및 연산자를 충 분히 갖추고 있는 현대식 언어이다. 2)하향식 설계(top-down design), 구조적 프로그래밍(structured programming) 3)컴퓨터의 기능을 최대한도로 이용할 수 있는 효율적인 언어이기 때문에 프로그램을 간결하게 작성하여 신속하게 수행 할 수 있다. 4)시스템 간에 호환성이 매우 높다. 즉 어떤 시스템에서 사용되던 C프로그램을 수정없 이 또는 약간의 수정으로 다른 시스템에서도 실행시킬 수 있다. > 이식성이 뛰어 나다. 5)고급 프로그래밍 언어와 어셈블리의 장점을 취한 중간 수준의 시스템 프로그래밍 언어 이다. (UNIX, MS-DOS, DBASEⅢ+등을 작성) 6) 문법이 간결하다. ----..

[C언어] bit 연산 , 비트 연산

bit를 연산하는 법에서 알아봅시다. 제 설명이 많이 부족합니다. 처음 부분만 이해하셧다면 쉽게 bit연산을 할수 있습니다. 하지만 저의 설명에 처음 부분은 존재하지 않는 것 같내요 ㅠ bit는 컴퓨터가 사용하는 숫자로 2진수 0과 1로 나타 내는 것 입니다. 프로그램밍에서의 표현은 변수숫자를 넣을 때 0x를 써주어 16진수로써 사용합니다. 16 진수 = 0 1 2 3 4 5 6 7 8 9 A B C D E F ex ) 0xffffffff = 1111 1111 1111 1111 1111 1111 1111 1111 0x0000000e = 0000 0000 0000 0000 0000 0000 0000 1110 1. and연산자 '&' '&' 연산자는 다음과 같은 실행을 한다. x y x & y 1 0 0 0..