Taek

3. Exercise 본문

C언어/문제 정리

3. Exercise

Taeky 2018. 7. 3. 22:22

1. a) "    86,1040" 86을 4칸 띄우고 출력한다. 

%m.pf에서 m은 출력할 최소너비이고 p는 최소 출력할 문자 개수이다.

       최소 너비는 모자르면 빈 칸으로, 최소 문자는 0으로 출력하게 된다.

   b) " 3.02530e+1"로 출력된다. 

       %m.pe에서 m은 f와 똑같고 p는 소수점 이후에 몇 개가 출력되는지를 의미한다.

   c) "83.1620"

%m.pf에서 m과 p는 e와 같은 의미이다. 단, f는 지수 형식으로 출력되지 않는다.

   d) "1e-06"

%m.pg에서 p는 '수의 크기'에 따라 지수형식이나 고정 소수점수로 표현한다. 

p에 따라 표시할 개수가 달라진다. 


2. a) printf("%-8.1e", x);

b) printf("%10.6e", x);

c) printf("%-8.3f", x);

d) printf("%6.0f", x);


3. a) 동일하다. scanf는 필요하다면 공백문자는 무시하고 읽는다.

   b) 동일하다. 공백문자가 사이에 있어도 특정 문자('-')를 기준으로 읽을 수 있다.

   c) 동일하다. 

   d) 동일하다. ','를 기준으로 실수형식을 읽을 수 있다.


4. i는 정수, x는 실수, j는 정수로 읽었다. 

  정수 변수는 정수부분을 인식해 입력받고, 

  실수 변수는 정수 부분과 소수점 부분을 인식해서 입력받게 된다.

  

  10.3 5 6을 입력한 뒤 엔터를 치면 

  i가 10을 인식하고 '.'을 만나서 다음 변수로 넘어가게 된다. 

  x가 .3을 만나고 공백문자를 만나니 뒤로 넘어가게 된다.

  j는 5를 만나고 공백문자를 만나서 j는 5가 된다.


  따라서 i는 10, x는 0.3, j는 5가 출력된다.

  6은 다른 변수가 없기에 버려진다.


5. 4와 비슷한 문제이다. 

  12.3 45.6 789가 입력되고 x와 y는 실수변수, i는 정수변수이다.

  12.3을 만나 x에 저장된다.

  45.6에서 '.'을 만나기 전까지 읽어 45가 i에 저장된다.

  .6 789에서 공백문자 전까지 읽으면 0.6이 y에 저장된다.


  따라서 x는 12.3, i는 45, i는 0.6이 저장된다.


6. #include <stdio.h>


int main(void)

{

int num1, denom1, num2, denom2, result_num, result_denom;


printf("Enter first fraction: ");

scanf("%d / %d", &num1, &denom1);


printf("Second fraction: ");

scanf("%d / %d", &num2, &denom2);


result_num = ( (num1 * denom2) + (num2 * denom1) );

result_denom = (denom1 * denom2);


printf("The sum is %d/%d\n", result_num, result_denom);


return 0;

}


공백을 읽히려면 scanf conversion specification에 공백을 넣어주면 된다. 

'C언어 > 문제 정리' 카테고리의 다른 글

4. Programming Projects  (0) 2018.07.12
4. Exercises  (0) 2018.07.11
3. Programming Projects  (0) 2018.07.11
2. Programming Projects  (0) 2018.07.02
2. Exercise  (0) 2018.07.02