함수 : 기능을 가진 단위 모듈
C언어는 함수로 구성된 언어라고 해도 무방할 정도이다.
CPU가 연산을 하기 위해서는 메모리(프로세스)에 올라가야한다.
변수들은 메모리에 올라가는 데이터들이다.
입력함수
사용자로부터 데이터를 입력받을 시 사용하는 함수는 scanf이다.
scanf("서식 문자열", &변수 ...);
scanf("%d" (서식만 사용)
,&input (변수명 앞에 &표기)
);
=> 정수형의 형태로 입력을 받겠다.
키보드의 A입력을 받으면 메인보드에서 운영체제(OS)로, 운영체제에서 프로그램으로 입력값을 전달한다.
그리고 프로그램에서 scanf를 사용한다.
f
format의 약자
void
타입이 없다.
리턴 타입이 없다. return 0 생략가능
#include<stdio.h>
void main() {
int input = 0;
scanf_s("%d", &input);
printf("입력한 수는 : %d\n", input);
}
출력결과 (3 입력 시) 입력한 수는 : 3
&
scanf를 쓸 때 변수명 앞에 &를 꼭 넣어주어야 한다.
왜 써야할까?
&는 메모리를 참조한다는 의미이다.
주소연산자라고 부르며 주소 연산자는 변수의 이름 앞에 사용하여, 해당 변수의 주소값을 반환한다.
#include<stdio.h>
void main() {
int input = 0;
scanf_s("%d", &input);
printf("입력한 수는 : %d\n", input * 5);
}
출력결과 (5 입력 시) 입력한 수는 : 25
#include<stdio.h>
int main(void) {
int input1, input2;
int total;
/*printf("첫 번째 정수를 입력하세요 : ");
scanf_s("%d", &input1);
printf("두 번째 정수를 입력하세요 : ");
scanf_s("%d", &input2);*/
printf("두 개의 정수를 입력하세요: ");
scanf_s("%d%d", &input1, &input2);
total = input1 + input2;
printf("두 수의 합은 %d이다.\n", total);
return 0;
}
출력결과
(10, 20 입력 시)
두 개의 정수를 입력하세요: 10 20
두 수의 합은 30이다.
입력값은 엔터 혹은 스페이스로 구분할 수 있다.
#include<stdio.h>
int main(void) {
char ch = 0;
scanf_s("%c", &ch);
printf("%d\n", ch);
return 0;
}
출력결과 (A 입력 시) 65
아스키코드
A가 65, B가 66, C가 67... 1바이트씩 증가한다.
char
1바이트 메모리를 할당하겠다는 의미
정적인 데이터들을 유기적으로 행동하게 하여 새로운 가치를 창출해내는 것
예를 들어 학생들 과목당 성적 데이터는 그 자체로 의미가 있다.
총점 및 평균을 데이터화 해야 그 의미가 있다.
의미있는 데이터를 만드는 과정!
#include<stdio.h>
int main(void) {
int a = 5;
int b = 3;
printf("두 수의 합은 %d입니다.\n", a + b);
printf("두 수의 차는 %d입니다.\n", a - b);
printf("두 수의 곱은 %d입니다.\n", a * b);
printf("두 수의 나누기는 %d입니다.\n", a / b);
printf("두 수의 나머지는 %d입니다.\n", a % b);
return 0;
}
출력결과
두 수의 합은 8입니다.
두 수의 차는 2입니다.
두 수의 곱은 15입니다.
두 수의 나누기는 1입니다.
두 수의 나머지는 2입니다.
#include<stdio.h>
int main(void) {
int a = 5;
int b = 3;
a += b;
printf("a += b의 결과는 %d입니다.\n", a);
a -= b;
printf("a -= b의 결과는 %d입니다.\n", a);
a *= b;
printf("a *= b의 결과는 %d입니다.\n", a);
a /= b;
printf("a /= b의 결과는 %d입니다.\n", a);
a %= b;
printf("a %= b의 결과는 %d입니다.\n", a);
return 0;
}
출력결과
a += b의 결과는 8입니다.
a -= b의 결과는 5입니다.
a *= b의 결과는 15입니다.
a /= b의 결과는 5입니다.
a %= b의 결과는 2입니다.
참고
콘솔 창에 %가 출력이 안된다면 하나 더 추가하기
printf("a %%= b의 결과는 %d입니다.\n", a);
#include<stdio.h>
int main(void) {
int a;
int b;
a = 5;
printf("++a의 처리 결과: %d\n", ++a);
a = 5;
printf("a++의 처리 결과: %d\n", a++);
printf("a를 다시 출력: %d\n\n", a);
b = 10;
printf("--b의 처리 결과: %d\n", --b);
b = 10;
printf("b--의 처리 결과: %d\n", b--);
printf("b를 다시 출력: %d\n", b);
return 0;
}
출력결과
++a의 처리 결과: 6
a++의 처리 결과: 5
a를 다시 출력: 6
--b의 처리 결과: 9
b--의 처리 결과: 10
b를 다시 출력: 9
++a는 바로 연산이 실행되고, a++는 다음 라인으로 넘어가기 바로 직전에 연산이 실행된다.
#include<stdio.h>
void main(void) {
int a = 10;
int b = 11;
int c = 12;
int d = 10;
printf("a == b의 결과는 : %d\n", a == b);
printf("a < b의 결과는 : %d\n", a < b);
printf("a > c의 결과는 : %d\n", a >= c);
printf("a == d의 결과는 : %d\n", a == d);
}
출력결과
a == b의 결과는 : 0
a < b의 결과는 : 1
a > c의 결과는 : 0
a == d의 결과는 : 1
true(1) false(0)를 반환
#include<stdio.h>
int main(void) {
int a = 10;
int b = 11;
int c = 12;
int d = 10;
printf("%d\n", !(a == 10));
printf("%d\n", (a < b) && (a < c));
printf("%d\n", (a >= c) || (a == d));
return 0;
}
출력결과
0
1
1
#include<stdio.h>
int main(void) {
int a = 0;
int b = 0;
printf("두 개의 정수를 입력하세요: ");
scanf_s("%d%d", &a, &b);
printf("두 수의 합: %d\n", a + b);
printf("두 수의 차: %d\n", a - b);
printf("두 수의 곱: %d\n", a * b);
printf("두 수의 나누기: %d\n", a / b);
return 0;
}
결과 출력 (4, 2 입력 시)
두 개의 정수를 입력하세요: 4 2
두 수의 합: 6
두 수의 차: 2
두 수의 곱: 8
두 수의 나누기: 2
#include<stdio.h>
int main(void) {
int a = 0;
int b = 0;
int c = 0;
printf("세 개의 정수를 입력하세요: ");
scanf_s("%d%d%d", &a, &b, &c);
printf("세 수의 곱은 %d입니다.\n", a * b * c);
return 0;
}
출력결과 (2, 3, 4 입력 시)
세 개의 정수를 입력하세요: 2 3 4
세 수의 곱은 24입니다.
빌드 시 에러가 났을 때는 보기>오류 목록 참고
#include<stdio.h>
int main(void) {
int a = 0;
int b = 0;
int c = 0;
printf("세 개의 정수를 입력하세요: ");
scanf_s("%d%d%d", &a, &b, &c);
printf("%d * %d + %d = %d\n", a, b, c, a * b + c);
return 0;
}
출력결과 (2, 3, 4 입력 시)
세 개의 정수를 입력하세요: 2 3 4
2 * 3 + 4 = 10
#include<stdio.h>
int main(void) {
int a = 0;
int b = 0;
int c = 0;
printf("세 개의 정수를 입력하세요: ");
scanf_s("%d%d%d", &a, &b, &c);
printf("합: %d\n", a + b + c);
printf("평균: %d\n", (a + b + c)/3 );
return 0;
}
출력결과 (2, 3, 4 입력 시)
세 개의 정수를 입력하세요: 2 3 4
합: 9
평균: 3
합과 평균을 변수에 담아 출력하는 것도 하나의 방법이다.
어떤 의미를 이루게 하거나 이루지 못하게 하기 위하여 갖추어야 할 상태나 요 소
if(수행 조건) {
수행하고 싶은 일
}
#include<stdio.h>
int main(void) {
int a;
printf("정수를 입력하세요: ");
scanf_s("%d", &a);
if (a > 5) {
printf("입력 값은 5보다 큽니다.\n");
}
if (a < 5) {
printf("입력 값은 5보다 작습니다.\n");
}
if (a == 5) {
printf("입력 값은 5와 같습니다.\n");
}
return 0;
}
출력결과 (6 입력 시)
정수를 입력하세요: 6
입력 값은 5보다 큽니다.
디자인
블록