TIL 소프트웨어 베이직 3-4강(fastcampus)

YU YU·2021년 8월 24일
0
post-thumbnail

3강)변수와 상수


변수와 상수

변수: 변할 수 있는 데이터
상수: 변하지 않는 데이터

자료형과 변수명을 입력하면서 선언함.
int a;
int a =7;

3-1 hello,world 출력하는 함수

#include <stdio.h> //

int main(void){ 
    //
    printf("hello,world!");//stdio.h 헤더에 포함되어 있음
    system("pause");
    //system()함수를 이용해 원영체제의 기본적인 기능을 이요할 수 잇음
    //pause명령어는 키보드를 입력하기 전까지 대기하는 기능 수행함
    return 0;
}

#include <stdio.h> : 표준 입출력 standard io
int main(void) : c,c++ main함수로부터 시작된다. 함수는 반환갑이 없을 수도 있으나 메인 함수에서는 항상 0을 반환하는것이 일반적임.
printf("hello,world!");printf라는 함수는 stdio.h라는 헤더파일에 포함되어 있다.
system("pause"); C언어는 system()함수를 이용해 운영체제의 기본적인 기능을 사용할 수 있다. pause명령어는 키보드를 입력하기 전가지 대기하는 기능을 수행한다.

3-2 숫자를 받아서 출력하는 함수

#include <stdio.h>

int main(void){
    int a;
    printf("the number is %d .\n",a);
    system("pause");
    return 0;
}

초기화 되지 않은 변수는 쓰레기값이 들어간다
visual studio 는 기본적으로 초기화되지 않은 변수를 감지하고 오류를 출력한다.

정적 변수(main함수 밖에 선언한 변수)로 선언된 것은 기본적으로 0으로 값이 초기화된다.
정적 변수가 아닌 수를 0으로 초기화하려면 값을 일일이 넣어주어야 한다.

예약어와 식별자

식별자란 변수나 함수 등의 고유한 이름 지정할 때
C언어 문법으로 정해진 예약어는 식별자로사용할 수 없다.
string, for ,void, bool, if ....

부호 절대값 방식 (가장 왼쪽을 부호로 )


1의 보수 : 0과 1을 뒤집음.

일반적으로 컴퓨터는 정확한 실수를 나타낼 수 없다. 범위를 나타내는 것임.
그래서 실수를 표현할 때, 부호, 지수, 유효숫자를 이용한다.

4강) C언어 기초 기본 입출력

4-1.scanf()

C언어에서 특정한 변수에 값을 넣기 위해서 scanf()를 사용한다.

#include <stdio.h>

int main(void){
int a;
scanf('%d",&a);
printf("입력한 숫자는 %d입니다.\n",a);
system("pause");
return 0;
}

visual studio는 기본적으로 취약한 함수를 사용할 수 없도록 제한한다.
그래서 명시해주어야 한다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void){
int a;
scanf('%d",&a);//&는 특정한 변수의 주소를 의미한다. 특정 메모리 주소에 접근하여 데이터를 수정하므로... 그래서 얼마만큼 데이터를 쓸지 알려주어야 함.
printf("입력한 숫자는 %d입니다.\n",a);
system("pause");
return 0;
}

이렇게 #define _CRT_SECURE_NO_WARNINGS 를 쓰면 제대로 작동한다.
scanf('%d",&a);&는 특정한 변수의 주소를 의미한다. 특정 메모리 주소에 접근하여 데이터를 수정하므로... 그래서 얼마만큼 데이터를 쓸지 알려주어야 함.

double형 데이터는 입력받을 때는 %lf를 사용하고 축력할 때는 %d를 출력한다. 그 이유는 몇 바이트가 사용되는지 알려야하기 때문에 8byte인 %lf를 쓰는 것이고, 출력할 때는 그 값 자체를 출력하는 것이기 때문에 %d를 입력하는 것이다. 정확한 크기를 입력하지 않아도 된다.

%%를 입력하여 %를 출력할 수 있다.

4-2 예제. 실수형 입력받아서 소수점 셋째 자리까지

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void){
	double a;
	scanf("%lf",&a);
    printf("%.2f\n",a);
    system("pause")'
    return 0;
}

printf("%.2f\n",a);은 소수점 둘째자리까지 출력하는 것을 알 수 있다. (반올림 적용됨)

4-3. 값 순서 반대로 출력하기

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void){
	double a ,b ;
	scanf("%lf %lf",&a , &b);
    printf("%f %f\n",b,a);
    system("pause")'
    return 0;
}

4-4. 한 숫자씩 끊어서

이 예제는 3자리 숫자를 입력하면 끊어서 출력하는 것이다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void){
	int a,b,c;
	scanf("%1d%1d%1d",&a, &b, &c);
    printf("%d %d %d\n", a, b, c);
    system("pause")'
    return 0;
}

printf는 값을 출력하므로 &기호를 사용하지 않아도 되지만, scanf()는 입력받을 주소값을 명시해주어야하기에 &를 사용해야 한다.

profile
코딩 재밌어요!

0개의 댓글

관련 채용 정보