목적
  - 난수 생성 및 조건문을 응용한다.

문제
사용자 삽입 이미지

코드

#include <iostream>
#include <cstdlib>
#include <ctime>

int main(void)
{
 srand((unsigned)time(NULL));
 rand();

 float afIn[50] = {0};
 float fTotal = 0;
 int i, iUp, iDown;
 i = iUp = iDown = 0;

 for(i = 0; i < 50; i++)
 {
  afIn[i] = ((rand() % 2001) - 1000) / 1000.0;
  std::cout << afIn[i] << '\t';
  iUp = afIn[i] > 0 ? iUp + 1 : iUp;
  iDown = afIn[i] < 0 ? iDown + 1 : iDown;
  fTotal += afIn[i];

 }

 std::cout << std::endl;
 std::cout << "0 보다 큰 값의 수 : " << iUp << '\n';
 std::cout << "0 보다 작은 값의 수 : " << iDown << '\n';
 std::cout << "난수들의 평균 : " << fTotal / 50 << '\n';

 return 0;
}


해설
  - using namespace std; 를 쓰지 않을때에는 cout 앞에 보시다시피 std:: 라는 것을 붙여 넣으면 됩니다. std::endl 도 마찬가지 입니다.
  - 이전 문제에도 보다 시피 구간내에 난수를 만들어서 계산하는 문제였습니다. 과년도 문제에도 비슷한 유형이 많으니깐 눈여겨 보셔야 할 문제 입니다.
 - 삼항 연산자는 검색하여 찾아 보시기 바랍니다.

참고
  - 유사 문제

Posted by 카켈


1. 목적
  - 무작위 실수를 만들어 원하는 계산을 할줄 안다.

2. 문제 (점수 : 30점)
  - 임의의 실수 10개를 생성하여 평균을 계산하는 프로그램
  - 생성된 실수는 -10.0 ~ 10.0 사이의 값이어야 한다.
  - 프로그램 실행 후 모습

생성된 임의의 실수들 :
0.7 -7.1 8.6 8.8 10.6 10.3 4.9 1.5 -3.2 0.5
평균 : 3.560000
Press any key to continue

3. 이해
  - 원하는 범위 내의 무작위로 만들어진 숫자를 담을수 있는가?
  - 평균을 낼수 있는가?

4. 코드

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main()
{
 int i = 0;
 float in[10] = {0};
 float total = 0;
 
 srand((unsigned)time(NULL));
 rand();

 puts("생성된 임의의 실수들 : ");
 while(i<10)
 {
  in[i] = ((rand() % 200) - 100.0f) / 10;
  total += in[i];
  printf("%0.1f ",in[i]);
  i++;

 }

 printf("\n평균 : %f\n",total / 10);
 
 return 0;

5. 해설
  - 최소 -10.0 최대 10.0 을 만들기 위해 32767 % 200 => (0.0 ~ 200.0) / 10 => 0.0 ~ 20.0 - 10 =>
   -10 ~ 10.0 까지 나오는 난수 알고리듬을 작성합니다.
  - 짧은 코드를 위해 만들어진 난수는 이내 저장되며 합계에 저장시킵니다.

6. 참고
  - 내부 검색 : rand() 함수

Posted by 카켈



1. 목적

  - 숫자를 입력 받고 계산하여 출력한다.

2. 문제 (점수 : 10점)
  - 네 개의 실수 값을 입력 받아서 평균을 출력하는 프로그램을 작성한다.
  - 평균은 소숫점 둘째 자리 까지만 표현
  - 출력 화면

네 개의 실수를 입력하세요 : 12.3456 789.0987 654.321 2345.6789
평균은 950.36 입니다.
Press any key to continue

3. 이해
  - 키를 입력 받아 변수에 저장할수 있는가?
  - 평균계산을 할 수 있는가?

4. 코드

#include <stdio.h>

int main()
{
 float a,b,c,d;
 a = b= c = d = 0;
 printf("네 개의 실수를 입력하세요 : ");
 scanf("%f %f %f %f", &a, &b, &c, &d);
 printf("평균은 %0.2f 입니다.\n", (a+b+c+d)/4);

 return 0;
}

5. 해설
  - float 형으로 선언된 4 개의 변수에 입력을 받고 출력하는 내용입니다.
  - %0.2f 가 소숫점 둘째 자리 까지 표현 하라는 내용입니다.

6. 참고
  - 계산 : 기존 문항들

Posted by 카켈
이전페이지 1 다음페이지