본문 바로가기
관/솔직한 c 언어 공부

c언어 기초 공부 02.

by 4차원 박스 2019. 11. 3.

잠깐 복습차원에서

주석은 // 혹은
/* */ 으로 사용

첫줄의 stdio.h 는 헤더파일로
역할은 함수의 원형(간단한 모습)을 가지고있다. 더 자사한 함수내용(함수의 바디 . 몸체)은
라이브러리 파일(컴파일된 내용이 여기 에 있다.)에 들어있다

int main(void)
의 반환으론
return 0;

가 와야하고

void main(void)
에는

리턴이 필요하지 않다.

char main(void)
에는 문자료 표시되는 내용이 나오면 된다하다.
예로 return ''을 사용하거나 문자가 오면 된다 .



오늘수업 으로는 출력에 대하여 배운다.


출력될 수 있는 값의 종류는 크게 두개이다

1. 숫자
2. 문자

숫자에는 정수 int 와 실수 float 로 나뉘고 그 안에서 큰값과 작은값으로 나뉜다

문자는 문자 char 와 문자열 string 으로 나뉜다 이때 문자열은 나타내는 자료형이 없어서
나중에 배열으로(array) 으로 나뉜다

 

 


printf의 사용



서식문자로 표시하여 정수값을 표시할수 있다

printf("%d은 정수이다 \n",10);

%d 를 통해 쓰면 프린트에프에서 사용가능하다 다음과 같다.
d는 decimal 십진수의 약자이다. 컴퓨터에서는 이진수 이기 때문에 십진수
로 표시한다.

다른 서식문자는 다음과 같다
%f 실수로 출력
%c 문자로 출력 작은따옴표로 사용한다 다음과 같다. printf("%c은 정수이다 \n",'a');
%s 문자열로 출력 printf("%s은 정수이다 \n","hello");


%2d 로 하면 우측 정렬로 적을 수 있다.






서식문자를 사용하는 이유는 접근성이 좋아진다고 할 수 있기 때문이라고 받아들이자
메모리가 귀하던 시절에는 좋은방법이라는 할 수 없지만(변수가 많으면 메모리공간을 차지하므로)
현재는 메모리가 넉넉하기 때문에 사용한다.

추가로 간단한 작동과정을 보면

하드에서 프로그램 하나를 만들어서 exe 파일 등을 실행시키면
이것이 메모리로 들어가서 작동권한을 얻게되고
이 권한이 생기면 cpu에서 서로 정보를 주고받으며 작동을 하게 되는데
이때 메모리로 들어가서 작동권한을 얻을때 메모리의 어느정도 공간을 차지하게 된다

메모리가 부족하던 시절은 이 과정에서 변수등을 줄이려 하였던 것이다. 





이스케이프 시퀀스는 줄바꿈할때 \n 를 사용한것 같은 종류이다.

printf("\t\"hi there\"\t");

따옴표를 쓰고싶거나 한줄 들여써서 출력하고자 하는등
의 출력을 하고자 할때 찾아본다.

특수한 기능을 가진 문자 앞에 백슬래쉬 \ 를 붙여서 사용한다.
printf("\\n"); 이거는 
이스케이프 시퀀스를 그대로 출력하는 백슬래쉬의 활용법이다



c의 변수 선언하기 1.

파이썬과 다르게
어떤 자료형으로 변수를 선언할지 앞에 확실하게 선언해야 사용이 가능하다.


파이썬은 다음과 같이 사용가능
dish="a"

하지만 c계열의 언어는 안된다.

다음과 같이 선언해야 사용이 가능하다.
char dish="a"


다음은 서식문자 에 따라 표현되는 방식이 다른 코드이다

각줄마다 10 , 16 , 8 진수이다.


void main(void)
{
int i=100;
printf("hello \n");
printf("dec= %d \n", i);
printf("hex= %x \n", i);
printf("oct= %o \n", i);
}

결과로
hello
dec= 100
hex= 64
oct= 144

가 나온다.





c의 변수 선언하기 2.
값을 담는 그릇 이라고 생각하면 된다.

다음과 같은 방법으로 선언하면 된다.

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
자료형 변수이름 ;      ㅣ
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

1. 사용하기 전에 선언한다
2. 그후 사용

한줄로 정리 :  선언하고 사용한다.

선언과 동시에 초기화하여 사용 할 수 있다.



사칙연산은 어느 프로그래밍 언어든 항상 같다
+ - * / % 는 순서대로
덧 뺄 곱 나 나머지

이렇게 진행된다



기호상수, 매크로(macro)는 마지막에 나온다.


오늘 연습은 구구단과 사칙연산 출력하는것임.

//구구단
int main(void)
{
int i,j;
printf("---구구단출력---");
for(i=2;i<10;i++)
{
printf("\n");
for(j=1;j<10;j++)
printf("%d x %d = %2d  ",i,j,i*j);
}
return 0;
}


간단한 사칙연산.

int main(void)
{
int x,y,sum,mi,de,mul,rest;

x=100;
y=200;
sum=x+y;
mi=x-y;
de=y/x;
mul=x*y;
rest=y%x;
printf("두수의 합 : %d \n",sum);
printf("두수의 차 : %d \n",mi);
printf("두수의 나눗셈 : %d \n",de);
printf("두수의 곱셈 : %d \n",mul);
printf("두수의 나머지 계산 : %d \n",rest);
return 0;
}

결과로
두수의 합 : 300
두수의 차 : -100
두수의 나눗셈 : 2
두수의 곱셈 : 20000
두수의 나머지 계산 : 0



9단만 출력하기(순수한 노가다).


//프로그램 1
int main(void)
{
printf("9 x 1 = 9 \n");
printf("9 x 2 = 18 \n");
printf("9 x 3 = 27 \n");
printf("9 x 4 = 36 \n");
printf("9 x 5 = 45 \n");
printf("9 x 6 = 54 \n");
printf("9 x 7 = 63 \n");
printf("9 x 8 = 72 \n");
printf("9 x 9 = 81 \n");

return 0;
}

//프로그램 2
int main(void)
{
printf("9 x 1 = %2d \n",9*1);
printf("9 x 2 = %2d \n",9*2);
printf("9 x 3 = %2d \n",9*3);
printf("9 x 4 = %2d \n",9*4);
printf("9 x 5 = %2d \n",9*5);
printf("9 x 6 = %2d \n",9*6);
printf("9 x 7 = %2d \n",9*7);
printf("9 x 8 = %2d \n",9*8);
printf("9 x 9 = %2d \n",9*9);

return 0;
}



//프로그램 3
int main(void)
{
int nine=9;
int inc=1;

printf("%d x %d = %2d \n",nine,inc,nine*inc);
inc=inc+1;
printf("%d x %d = %2d \n",nine,inc,nine*inc);
inc=inc+1;
printf("%d x %d = %2d \n",nine,inc,nine*inc);
inc=inc+1;
printf("%d x %d = %2d \n",nine,inc,nine*inc);
inc=inc+1;;
printf("%d x %d = %2d \n",nine,inc,nine*inc);
inc=inc+1;
printf("%d x %d = %2d \n",nine,inc,nine*inc);
inc=inc+1;
printf("%d x %d = %2d \n",nine,inc,nine*inc);
inc=inc+1;
printf("%d x %d = %2d \n",nine,inc,nine*inc);
inc=inc+1;
printf("%d x %d = %2d \n",nine,inc,nine*inc);

return 0;
}

나중에는 for문을 이용한 앞의 구구단 처럼 해결 할 수 있다.



다음은 최종적으로 실습에서 전부 사용한 코드이다.

#include 

/*
int main(void)
{
printf("%d은 정수이다 \n",10);
printf("\n");

return 0;
}
*/

/*
void main(void)
{
int i=100;
printf("hello \n");
printf("dec= %d \n", i);
printf("hex= %x \n", i);
printf("oct= %o \n", i);
}
*/

/*
int main(void)
{
printf("%d은 정수이다 \n",10);
printf("\n");
printf("\t\"hi there\"\t");
printf("\\n");
printf("21");
return 0;
}
*/


/*
//구구단 1
int main(void)
{
int i,j;
printf("---구구단출력---");
for(i=2;i<10;i++)
{
printf("\n");
for(j=1;j<10;j++)
printf("%d x %d = %2d  ",i,j,i*j);
}
return 0;
}
*/



/*
int main(void)
{
int x,y,sum,mi,de,mul,rest;

x=100;
y=200;
sum=x+y;
mi=x-y;
de=x/y;
mul=x*y;
rest=y%x;
printf("두수의 합 : %d \n",sum);
printf("두수의 차 : %d \n",mi);
printf("두수의 나눗셈 몫 : %d \n",de);
printf("두수의 곱셈 : %d \n",mul);
printf("두수의 나머지 계산 : %d \n",rest);
return 0;
}
*/



/*
//프로그램 1
int main(void)
{
printf("9 x 1 = 9 \n");
printf("9 x 2 = 18 \n");
printf("9 x 3 = 27 \n");
printf("9 x 4 = 36 \n");
printf("9 x 5 = 45 \n");
printf("9 x 6 = 54 \n");
printf("9 x 7 = 63 \n");
printf("9 x 8 = 72 \n");
printf("9 x 9 = 81 \n");

return 0;
}
*/


/*
//프로그램 2
int main(void)
{
printf("9 x 1 = %2d \n",9*1);
printf("9 x 2 = %2d \n",9*2);
printf("9 x 3 = %2d \n",9*3);
printf("9 x 4 = %2d \n",9*4);
printf("9 x 5 = %2d \n",9*5);
printf("9 x 6 = %2d \n",9*6);
printf("9 x 7 = %2d \n",9*7);
printf("9 x 8 = %2d \n",9*8);
printf("9 x 9 = %2d \n",9*9);

return 0;
}
*/

/*
//프로그램 3
int main(void)
{
int nine=9;
int inc=1;

printf("%d x %d = %2d \n",nine,inc,nine*inc);
inc=inc+1;
printf("%d x %d = %2d \n",nine,inc,nine*inc);
inc=inc+1;
printf("%d x %d = %2d \n",nine,inc,nine*inc);
inc=inc+1;
printf("%d x %d = %2d \n",nine,inc,nine*inc);
inc=inc+1;;
printf("%d x %d = %2d \n",nine,inc,nine*inc);
inc=inc+1;
printf("%d x %d = %2d \n",nine,inc,nine*inc);
inc=inc+1;
printf("%d x %d = %2d \n",nine,inc,nine*inc);
inc=inc+1;
printf("%d x %d = %2d \n",nine,inc,nine*inc);
inc=inc+1;
printf("%d x %d = %2d \n",nine,inc,nine*inc);

return 0;
}
*/

' > 솔직한 c 언어 공부' 카테고리의 다른 글

c언어 기초 공부 06.  (0) 2019.11.06
c언어 기초 공부 05.  (0) 2019.11.05
c언어 기초 공부 04.  (0) 2019.11.04
c언어 기초 공부 03.  (0) 2019.11.04
c언어 기초 공부 01.  (0) 2019.11.02

댓글