본문 바로가기

c언어 기초

c언어 변수,자료형, printf, scanf - 나도코딩

유튜브 나도코딩 c언어 기초 강의에 대한 내용으로 공부하였습니다.

 

#include <stdio.h>

int main(void)
{

	//정수형 변수에 대한 예제

	int age = 12;
	printf("%d\n", age);
	age = 13;
	printf("%d\n", age);

	// 실수형 변수에 대한 예제

	float f = 46.5;
	printf("%.2f\n",f);    // %.2f는 소수점 둘째자리까지 나타낼 수 있다.
	double d = 4.428;
	printf("%.2f\n", d);

	// 상수에 대한 예제
	const int YEAR = 2000;             // const를 사용해서 YEAR는 더 이상 바뀔 수 없음.
	printf("태어난 연도 : %d\n", YEAR);

	// printf
	// 연산
	int add = 3 + 7;
	printf("3 + 7 = %d\n", add);
	printf("%d + %d = %d\n", 3, 7, 3 + 7); // printf 안에서 연산하고 바로 출력가능.
    
     // scanf
	 //키보드 입력을 받아서 저장
	int input;
	printf("값을 입력하세요 : ");
	scanf_s("%d", &input);
	printf("입력값 : %d\n", input);

	 //문자(한글자), 문자열(한 글자 이상의 여러 글자)
	char c = 'A';
	printf("%c\n", c);


	char str[256]; // char c같은 문자를 저장하기 위한 변수를 256개 쭉 연속으로 만든다는 것 
	scanf_s("%s", str, sizeof(str)); // & 안써주고 사이즈 말해줘야함.
	printf("%s\n", str);
    
    return 0;
    
  }

int는 정수형.  소숫점이 없는 수를 선언할 때 사용하고, 형식지정자 %d를 사용해서 출력한다.

 

float은 실수형. 소숫점까지 있는 수를 선언할 때 사용하고, 형식지정자 %f를 사용해서 출력하며, %.2f라고 쓰면 소숫점 둘째자리까지 나타낼 수 있고 셋째자리 넘어서까지 있다면 반올림돼서 출력된다.

 

double 또한 float과 같은 실수형 변수인데 차이점은 크기에서 차이가 있다. 

float은 32비트, double은 64비트로 double은 float보다 더 낮은 자릿수의 소수점까지 나타낼 수 있다.

 

char는 문자형을 나타낼 때 쓰는데. 1바이트만 표현할 수 있어서 알파벳 하나만 표현할 수 있고, 형식지정자 %c를 사용한다.

한글은 2바이트로 한글을 나타내려면 문자열을 사용해야하는데,

3글자를 나타내려면 배열의 길이가 최소 3*2+1인 7이 되어야한다. +1은 배열의 끝에 \0 (null)을 반드시 넣어줘야하기 때문에 필요하다. 만약 배열이 남는다면 남는 자리들은 \0(null)로 채워질 것이다. 그리고 문자열의 형식지정자는 %s를 사용한다.

 

 

scanf를 사용해서 값을 입력받아 변수에 넣어주고 싶다면 입력받을 값과 맞는 형식지정자를 쓰고, 입력받은 값을 넣어줄 변수 앞에 &를 써야한다.

문자열을 입력받을 때는 &를 써줄 필요 없고, 뒤에 sizeof()를 통해 크기를 써줘야한다.

 

 

간단한 프로젝트

경찰서 조서쓰기

#include <stdio.h>


int main(void)
{
	char name[256];
	printf("이름이 뭐에요?");
	scanf_s("%s", name, sizeof(name));

	int age;
	printf("몇살이에요?");
	scanf_s("%d", &age);

	float weight;
	printf("몸무게가 몇이에요?");
	scanf_s("%f", &weight);

	double height;
	printf("키가 몇이에요?");
	scanf_s("%lf",& height);     // %lf는 소수점 6째자리까지 나타낼 수 있음.
	
	char what[256];
	printf("무슨 범죄를 저질렀어요??");
	scanf_s("%s", what, sizeof(what));

	//조서내용출력
	printf("\n\n--- 범죄자 정보 ---\n\n");
	printf(" 이름     : %s\n", name);
	printf(" 나이     : %d\n", age);
	printf(" 몸무게   : %.2f\n", weight);
	printf(" 키       : %.2f\n", height);
	printf(" 범죄명   : %s\n", what);
	
    return 0;
}

여러가지 자료형 printf scanf를 사용해서 간단한 프로젝트를 만들어보았다.