쉽게 풀어쓴 C언어 EXPRESS(개정 3판) - Chapter 4

 

쉽게 풀어쓴 C언어 EXPRESS (개정 3판) - 천인국

Chapter 4. Programming




1.

#include <stdio.h>

int main()
{
double x;

printf("실수를 입력하시오: ");
scanf("%lf", &x);
printf("실수형식으로는 %f입니다\n", x);
printf("지수형식으로는 %e입니다", x);
return 0;
}



2.

#include <stdio.h>

int main()
{
int data;

printf("16진수 정수를 입력하시오: ");
scanf("%x", &data);
printf("8진수로는 %#o입니다\n",data);
printf("10진수로는 %d입니다\n",data);
printf("16진수로는 %#x입니다\n",data);
return 0;
}


풀이법은 다음과 같다


프로그래밍에서 등호(=)의 의미는 단순히 같다는 표현이 아니다.
프로그래밍 언어에서 등호(=)는 '저장'의 의미로 사용되며 왼쪽 문자에 오른쪽 값을 저장하는 것이다. 따라서 위와 같은 방식으로 저장, 옮기기를 하는 것이다.  

3.

#include <stdio.h>

int main()
{
int x = 10;
int y = 20;
int tmp;

printf("x=%d y=%d\n", x, y);

tmp = x;
x = y;
y = tmp;

printf("x=%d y=%d", x, y);
return 0;
}



4.

#include <stdio.h>

int main()
{
double x, y, z, volume;

printf("상자의 가로 세로 높이를 한번에 입력: ");
scanf("%lf %lf %lf", &x, &y, &z);

volume = x * y * z;

printf("상자의 부피는 %lf입니다.",volume);
return 0;
}



5.

#include <stdio.h>

#define SQMETER_PER_PYEONG 3.3058

int main()
{
int x;
double y;

printf("평을 입력하세요: ");
scanf("%d", &x);

y = x * SQMETER_PER_PYEONG;

printf("%lf평방미터입니다", y);
return 0;
}



6.

#include <stdio.h>

int main()
{
double value;

value = 3.32e-3 + 9.76e-8;

printf("%lf",value);
return 0;
}



7.

#include <stdio.h>

int main()
{
double E, m, v;

printf("질량(kg): ");
scanf("%lf",&m);
printf("속도(m/s): ");
scanf("%lf",&v);

E = 0.5 * m * v * v;

printf("운동에너지(J): %lf",E);
return 0;
}



8.

#include <stdio.h>

int main()
{
int a;

printf("아스키 코드값을 입력하시오: ");
scanf("%d", &a);

printf("문자:%c입니다", (char)a);
return 0;
}

다음과 같은 방식으로도 되기는 하나 형변환을 이용하기 위한 문제이니 위의 방식을 이용하도록 하자.

#include <stdio.h>

int main()
{
int a;

printf("아스키 코드값을 입력하시오: ");
scanf("%d", &a);

printf("문자:%c입니다", a);
return 0;
}



9.

#include <stdio.h>

int main()
{
char a;

printf("%c %c %c", 'a'+1,'a'+2,'a'+3);
return 0;
}



10.

#include <stdio.h>

int main()
{
printf("\a화재가 발생하였습니다.\a");
return 0;
}



11.

#include <stdio.h>

int main()
{
printf("\"ASCII code\", \'A\', \'B\', \'C\'\n");
printf("\\t \\a \\n");
return 0;
}

주요 code

(형변환)?
괄호안에 어떤 형태로 형변환을 할 것인지(예를 들어, int, float char 등)를 적고 뒤에 형변환을 원하는 값(위의 ?, ?에는 문자, 숫자 등의 값을 적는 것이다)을 적으면 형태가 변환되는 형변환이 발생한다.

코드에서 \의 의미는 크게 두가지라고 볼 수 있다. 특정 기능을 수행하기 위한 '\', ""안에서 기본 설정에 의해 적을 수 없는 것을 적게 해주는 '\'로 나뉘는 것이다. 
\n은 줄바꿈, \t은 tap키와 같은 커서 이동, \a는 경고음 등 '\문자'는 대부분 특정 기능을 수행하는 \로 사용된다. 
하지만 \", \' 등은 기본적으로 컴퓨터에서 ",',\ 등은 역할을 지정해놓은 것이거나 중복사용되는 등 특수한 기호를 printf();문의 ""안에 넣었을 때 모니터에 표시되지 않는 것을 방지하기 위해 방법을 만든 것이다. 
이렇기 \의 의미를 두가지로 생각하면 이후에 기억하고 판단하기 용이하다. 

%#
%o, %x 등을 통해 진수표현을 하고 싶을 때 앞에 0이 붙을 수 있게 하기위해 '#'을 붙이는 것이다. 
예를들어, %o = 111이라면 %#o = 0111로 나타나는 것이다.

댓글

이 블로그의 인기 게시물

쉽게 풀어쓴 C언어 EXPRESS(개정 3판) - Chapter 10-3

쉽게 풀어쓴 C언어 EXPRESS(개정 3판) - Chapter 16-1

쉽게 풀어쓴 C언어 EXPRESS(개정 3판) - Chapter 13-2