gamE/C2010. 1. 22. 17:53






3-1. 덧셈 프로그램 구현을 위해 필요한 + 연산자

#include <stdio.h>

int main(void)
{
 3+4;
 return 0;

}

- 잘못된 코드


- 위의 + 기호처럼 연산을 요구할 때 사용되는 기호를 가리켜 연산자라 한다.


3-2. C언어는 데이터 저장을 위해 변수를 제공한다.
 1. 변수를 이용한 데이터의 저장
 - 변수란?
 > 데이터를 저장할 수 있는 메모리 공간에 붙여진 이름을 의미한다.



#include <stdio.h>

int main(void)
{
 int result; //변수 선언
 result=3+4; //덧셈 결과 저장

 printf("덧셈 결과 : %d \n", result);
 printf("%d 더하기 %d는 %d 입니다. \n", 3, 4, result);
 printf("변수 result에 저장된 값 : %d \n", result);

 return 0;

}

결과

덧셈 결과 : 7
3 더하기 4는 7 입니다
변수 result에 저장된 값 : 7



3-3. C언어에는 다양한 연산자가 존재한다.
 1. C언어가 제공하는 다양한 종류의 연산자들
 -대입 연산자(=)와 산술 연산자(+,-,*,/,%)

 연산자  연산자의 의미
 =  오른쪽에 있는 값을 왼쪽에 대입한다.
ex) a = 20
 +  왼쪽과 오른쪽에 있는 값을 더한다.
ex) a = 4+3
 -  왼쪽에 있는 값에서 오른쪽에 있는 값을 뺀다.
ex) a =4-3
 *  왼쪽과 오른쪽에 있는 값을 곱한다
ex) a= 4*3
 /  왼쪽에 있는 값을 오른쪽에 있는 값으로 나눈다
ex) a = 4/3
 %  왼쪽에 있는 값을 오른쪽에 있는 값으로 나눠서 나머지를 반환한다.
ex) a= 4%3



#include <stdio.h>

int main(void)
{
 int val1=4;
 int val2=2;

 printf("두 수의 덧셈: %d \n", val1+val2);
 printf("두 수의 뺄셈: %d \n", val1-val2);
 printf("두 수의 곱셈: %d \n", val1*val2);
 printf("두 수의 나눗셈: %d \n", val1/val2);
 printf("두 수의 나머지: %d \n", val1%val2);

 return 0;

}


결과

두 수의 덧셈: 6
두 수의 뺼셈: 2
두 수의 곱셈: 8
두 수의 나눗셈: 2
두 수의 나머지: 0




 2. 기타 대입 연산자(+=, -=, *=, /=, %=)
 - a = a + b;                 =               a +=b;
 - 위는 같은 의미


#include <stdio.h>

int main(void)
{
 int val1=2;
 int val2=4;
 int val3=6;

 val1+=3; //val1=val1+3;
 val2*=4; //val2=val2*4;
 val3%=5; //val3=val3%5;

 printf("result : %d %d %d \n", val1, val2, val3);
 
 return 0;

}

결과

result : 5 16 1


 3. 부호 연산으로서의 +와 -연산자

#include <stdio.h>

int main(void)
{
 int val1=2;
 int val2=-4;
 
 val1=-val1; //val1-=val1과 혼동 하지 말 것.
 printf("val1=-val1 연산 이후 val1은 %d \n", val1);
 
 val2=-val2;
 printf("val2=-val2 연산 이후 val2은 %d \n", val2);

 return 0;

}

결과

val1=-val1 연산 이후 val1은 -2
val2=-val2 연산 이후 val2은 4



 4. 증가, 감소 연산자
 

 연산자  연산자의 의미
 ++a  값을 1 증가 후 연산을 진행
ex) printf("%d", ++a)
 a++  연산을 진행한 후 값을 1 증가
ex) printf("%d", a++)
 -b  값을 1 감소 후 연산을 진행
ex) printf("%d, --b)
 b-  연산을 진행한 후 값을 1 감소
ex) printf("%d", b--)




#include <stdio.h>

int main(void)
{
 int val1=10;
 int val2=10;

 printf("선 연산 후 증가 : %d \n", val1++);
 printf("다시 한번 출력 : %d \n", val1);

 printf("선 증가 후 연산 : %d \n", ++val2);
 printf("다시 한번 출력 : %d \n", val2);

 


 return 0;

}


결과

선 연산 후 증가 : 10
다시 한번 출력 : 11
선 증가 후 연산 : 11
다시 한번 출력 : 11






#include <stdio.h>

int main(void)
{
 int val1=10;
 int val2=(val1--)+2;

 printf("val1 : %d \n", val1);
 printf("val2 : %d \n", val2); 

 return 0;

}


결과

val1 : 9
val2 : 12




5. 관계 연산자(비교 연산자)

 연산자  예  의미
 <  a<b  a가 b보다 작은가?
 >  a>b  a가 b보다 큰가?
 ==  a==b  a와 b가 같은가?
 !=  a!=b  a와 b가 같지 않은가?
 <=  a<=b  a가 b보다 작거나 같은가?
 >=  a>=b  a가 b보다 크거나 같은가?



#include <stdio.h>

int main(void)
{
 int val1=10;
 int val2=12;
 int result1, result2, result3;

 result1=(val1==val2);
 result2=(val1<=val2);
 result3=(val1>val2);

 printf("result1 : %d \n", result1);
 printf("result2 : %d \n", result2);
 printf("result3 : %d \n", result3);

 return 0;

}



결과

result1 : 0
result2 : 1
result3 : 0



6. 논리 연산자
- 논리 연산자란 and, or, not을 표현하는 연산자이다.

 연산자  연산자의 의미
 &&  피연산자가 모두 참이면 true를 반환(and의 의미)
 ex) a && b
 ||  피연산자 중 하나라도 참이면 true를 반환(or의 의미)
 ex) a||b
 !  피연산자가 true면 false를, false면 true를 반환
 (not의 의미)
 ex) !a



#include <stdio.h>

int main(void)
{
 int val1=10;
 int val2=12;
 int result1, result2, result3;

 result1=(val1==10 && val2==12);
 result2=(val1<12||val2>12);
 result3=(!val1);

 printf("result1 : %d \n", result1);
 printf("result2 : %d \n", result2);
 printf("result3 : %d \n", result3);

 return 0;

}


결과

result 1 : 1
result 2 : 1
result 3 : 0



7. 비트 단위 연산자

~, &, ^, |, <<, >>

8. 콤마(,)연산자

#include <stdio.h>

int main(void)
{
 int a=1, b=2;
 printf("Hello "), printf("World! \n");

 a++, b++;
 printf("%d ", a), printf("%d ", b), printf("\n");

 return 0;

}


결과

Hello World!
2 3

 연산순위  연산자
 1  (), [], ->, .
 2  sizoof, &, ++, ==, ~, !,
 *(간접 지정 연산자), +(단항 연산자), -(단항 연산자)
 3  *(곱셈 연산자), /, %
 4  +(이항 연산자), -(이항 연산자)
 5  <<,>>
 6  <,<=,>=,>
 7  ==,!=
 8  &
 9  ^
 10  |
 11  &&
 12  ||
 13  ?;(삼항 연산자)
 14  =, +=, *=, /=, &=, &=, ^=, |=, <<=, >>=
 15  ,(콤마 연산자)


3-4 키보드로부터 데이터를 입력 받고 싶다!

1] scanf를 이용해서 키보드로부터 정수를 입력받기 원한다면?

#include <stdio.h>

int main(void)
{
 int result;
 int val1, val2;

 printf("첫 번째 숫자: ");
 scanf("%d", &val1); //첫 번째 데이터 입력

 printf("두 번째 숫자: ");
 scanf("%d", &val2); //두 번째 데이터 입력

 result=val1+val2; //덧셈 연산.
 printf("%d + %d = %d \n", val1, val2, result);

 return 0;

}


결과

첫 번째 숫자 : A
두 번째 숫자 : B
A + B = C



2] scanf를 이용하면 입력 형태를 다양하게 지정하는 것이 가능하다.

#include <stdio.h>

int main(void)
{
 int result;
 int val1, val2;

 printf("숫자 둘을 입력 하세요 : ");
 scanf("%d %d", &val1, &val2);

 result=val1+val2;
 printf("%d + %d = %d \n", val1, val2, result);

 return 0;

}


결과

숫자 둘을 입력하세요 : A B
A + B = C



'C 프로그래밍' ~80P



'gamE > C' 카테고리의 다른 글

C - Chapter 2. 프로그램의 기본 구성  (0) 2010.01.20
C - Chapter1. 이것이 C언어다.  (1) 2010.01.19
Posted by 생선날개
gamE/C2010. 1. 20. 15:10




함수란?
ex)

3X + 4 = Y

인자 전달 - 입력 X를 전달하는 행위
함수 호출 - 입력 X를 전달하면서 정의된 함수의 실행을 요구하는 행위

main
- 주 프로그램임을 의미. 함수의 이름

괄호{}
- 함수 main()의 실행 범위. main 몸체 시작과 종료.

printf()
- 문자열을 화면에 출력하기 위한 함수

return 0
- 함수를 빠져나온다는 의미
- 함수를 호출 한 영역으로 값을 반환한다는 의미

%d
- 서식 문자. 10진수 정수형으로 출력



특수 문자

기능

 \a

벨소리

 \b

왼쪽으로 1칸이동

 \f

한 페이지 전진

 \n

줄바꿈

 \r

Enter

 \t

Tab

 \v

수직 Tab

 \\

\를 출력

 \'

작은 따옴표 출력

 \"

큰 따옴표 출력

 \0

아무 동작하지 않음

 %%

% 기호 출력

 ;

문장 구별하기

 /* */

주석문(자신만의 문장.출력되지 않음)

 //

한줄 주석 


연습문제 1.

#include <stdio.h>
int main(void)
{
 printf("홍\n홍길\n홍길동\n");
  return 0;
}


결과


홍길
홍길동




연습문제 2.

#include <stdio.h>
int main(void)
{
 printf("이름\n아무개\n");
 printf("주소\n어딘가에\n");
 printf("전화번호\n123456789\n");
  return 0;
}


결과

이름
아무개
주소
어딘가에
전화번호
123456789




연습문제 3.


#include <stdio.h>

int main(void)
{
 printf("Hello Everybody \n");
 printf("%d\n", 1234);
 printf("%d %d \n", 10, 20);
 return 0;

}

결과

Hello Everybody
1234
10 20


연습문제 4.

#include <stdio.h>

int main(void)
{
 printf("my age : %d \n", 20);
 printf("%d is my point \n", 100);
 printf("good \nmorning \neverybody\n");

 return 0;

}

결과

my age : 20
100 is my point
good
morning
everybody





연습문제 5.

#include <stdio.h>

int main(void)
{
 printf("저의 이름은 홍길동입니다. \n");
 printf("저의 나이는 %d살이고요. \n", 20);
 printf("제가 사는 번지수는 %d-%d번지입니다.\n", 111, 222);

 return 0;

}

결과

저의 이름은 홍길동입니다.
저의 나이는 20살이고요
제가 사는 번지수는 111-222번지입니다.





연습문제 6.

#include <stdio.h>

int main(void)
{
 printf("%d * %d = %d\n", 2, 3, 6);
 printf("%d * %d = %d\n", 2, 4, 2*4);

 return 0;

}


결과

2 * 3 = 6
2 * 4 = 8




'C 프로그래밍' ~51P



'gamE > C' 카테고리의 다른 글

C - Chapter 3. 변수와 연산자  (0) 2010.01.22
C - Chapter1. 이것이 C언어다.  (1) 2010.01.19
Posted by 생선날개
gamE/C2010. 1. 19. 16:36





프로그램이란?
-컴퓨터가 처리할 일련의 작업 처리 절차의 집합체

프로그래밍이란?
-프로그램을 만드는 행위를 말한다.

프로그래밍 언어란?
-사람과 컴파일러가 이해할 수 있는 약속된 언어를 의미한다. C언어도 이러한 프로그래밍 언어 중 하나.

컴파일러가 하는 역할
-프로그래밍 언어로 작성한 프로그램을 컴퓨터가 이해할 수 있도록 기계어로 번역해 주는 역할. 더불어 이렇게 번역하는 일 자체를 컴파일이라 한다.

코딩
-프로그램을 작성하는 과정

소스 코드
-컴파일되지 않은 코드

소스 파일
-소스 코드가 저장되어 있는 파일

오브젝트 파일
-소스 파일을 컴파일하면 새로운 파일이 하나 생성되는 것

C언어의 특징
-프로그램의 이식성이 높다
-저급 언어와 고급 언어의 구조를 모두 갖추고 있다
-예약어를 사용하여 표현이 간결하다
-함수의 집합이다
-프로그램의 모듈화가 가능하고, 분할 프로그래밍과 분할 컴파일 할 수 있다
-구조화 프로그래밍이 용이하다
-연산자가 풍부하며, 비트 연산, 쉬프트 연산, 번지 및 포인터 연산 등으로 시스템 프로그래밍을 하기 쉽게 한다
-Preprocessor의 매크로 기능이 있다
-포인터를 데이터로 사용할 수 있다
-모든 함수의 순환이 허용된다




'C 프로그래밍' ~34P



'gamE > C' 카테고리의 다른 글

C - Chapter 3. 변수와 연산자  (0) 2010.01.22
C - Chapter 2. 프로그램의 기본 구성  (0) 2010.01.20
Posted by 생선날개