티스토리 뷰

jungol > 문제 > Langauge_Corder > 입력 - 자가진단 5~6


자가진단 5


실수형 서식지정자는 어디 소수점까지 나타낼 수 있는 방법이 있다

그건 바로 %와 실수형 서식지정자의 알파벳 사이에 .x (x는 원하는 소수점)을 넣는 것이다.

ex) printf("%f", 1.2395);

-> printf("%.2f", 1.2395);

출력) 1.2395

-> 1.24

여기서 %.2f에서 .2는 소수점 둘째짜리까지만 출력한다는 의미이다. (반올림이 필요하면 자동으로 반올림한다)


문제에선 정렬되어서 출력되길 원하기 때문에

코드의 서식지정자를 보면 %4.1f, %5.1f 등

%와 f에 정수(4, 5)가 들어있다.

이는 각각 4, 5개의 여백을 만든 뒤 마지막 여백을 기준으로 나머지 여백을 채워나가면서 출력한다는 의미이다.

예제 1

 

%d에 1, 2, 3을 붙여서
여백 없음, 여백 1개, 여백 2개 , 여백 3개를 만들고 출력했다.


결과를 보면 여백을 만든 다음, 여백 이후에 1이 출력 되는 것이 아닌, 만들어진 여백 중 가장 마지막 여백에 1이 그 자리를 덮고있다!

예제 2

 

 


%3d는 여백을 3개 만든 뒤 3번째 여백을 기준으로 왼쪽을 채워나가면서 출력해야 하나,
여백의 수보다 대입된 수의 자릿수가 커서
%d를 통해 출력한 것처럼 나왔다.

(여백보다 대입되는 수가 크면 %d으로 바뀌는 것 같다)

어쨌든 맨 처음에 작성한 코드를 실행해보면...


이렇게 잘 나왔다!


 

자가진단 6

드디어 입력 함수를 써야 한다!!!

scanf () : scan + function


변수의 주소를 받아서 입력받은 값을 변수에 대입시킨다.

ex)
int a = 0;
scanf("%d", &a);

를 하면 프로그램 실행 시 정수형 값을 변수 a에 직접 대입 할 수 있다.

여기서 &는 변수 앞에 있을 때는 그 변수의 주소 값을 알려준다.
scanf함수는 변수의 주소에 우리가 입력 한 값을 대입시킨다.


입력을 받고, 출력을 하면 된다!


입력값을 받을 변수를 만들고,
scanf()로 입력을 받아, 변수에 집어넣었다!
그러면...


이렇게 나온다!
( scanf()가 실행되고 printf()가 실행될 때
먼저 줄 바꿈이 일어난 뒤, 출력이 이루어집니다)

반복문(while문)을 이용하면...


 


이렇게 여러 번 실행시킬 수 있다!


코드

 

자가진단 5
#include <stdio.h>

int main (void)
{
float yd = 0.0;
float in = 0.0;

yd = 2.1;
in = 10.5;
printf("%.4.1fyd = %5.1fcm\n", yd, yd*91.44);
printf("%4.1fin = %5.1fcm", in, in*2.54);
return 0;
}
자가진단 6
#include <stdio.h>

int main (void)
{
int height = 0;
printf("height = ");
scanf("%d", &height");
printf("Your height is %dcm.\n", height);
return 0;
}
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함