본문 바로가기

C언어/과제

C언어 과제 08

1. 난수를 발생하는 rand 함수를 활용하여 주사위를 10번 던졌을 때 주사위 값을 출력하시오.

(주사위 값 : 1~6)

출력)    dice value :  5

           dice value :  2

           dice value :  1

           ...

           dice value :  1

#include <stdio.h>

int main()
{
  int cnt;
  
  srand((unsigned)time(NULL));
  
  for(cnt=06>cnt; cnt++)
  {
  printf("dice value : %d\n", (rand()%6)+1);
  }
  return 0;
}

 

 

2. 초 입력시 분과 초로 변환하는 프로그램을 작성하세요.

출력)    Input Seconds :  100

           Output :  1 min 40 sec

 

#include <stdio.h>

int main()
{
  
int time;
  
int min=0;
  
  printf(
"Input Seconds : ");
  scanf(
"%d"&time);

  
while(60<=time)
  {
    time
=time-60;
    min++;
  }
  printf(
"Output : %dmin %dsec", min, time);
  
return 0;
}


3. 1바이트 범위의 정수를 입력 받은 다음, 각각의 비트가 켜져 있으면 1, 꺼져 있으면 0을 출력하세요.

출력)    정수 입력(0~255) : 127

 

           비트     스위치

           ------------------

           0   :     1

           1   :     1

           2   :     1

           3   :     1

           4   :     1

           5   :     1

           6   :     1

           7   :     0

           ------------------

//정수 입력시 켜진 비트자리 표시
#include <stdio.h>

int main()
{
  
int inum;
  
int count;
  
int bit;
  
int swit=1;

  fprintf(stdout, 
"정수 0~255 입력 : ");
  fscanf(stdin, 
"%d"&inum);
  fprintf(stdout, 
"비트\t스위치\n");
  fprintf(stdout, 
"==============\n");
  
for(count=18>=count; count++)
  {
    bit
=(swit&inum)/swit;
    fprintf(stdout, 
"  %d   :   %d\n", count-1, bit);
    swit
=1<<count;
  }

  
return 0;
}

4. 수직 막대 그래프(histogram)와 관련된 문제입니다. 정수 N1, N2, N3의 길이를 갖는 막대 그래프를 출력하세요(0 < N1, N2, N3 < 10,  막대문자 : *).

출력)    정수(3) 입력 : 7 2 5

           7   2   5

       --------------

           *   *    *

           *   *    *

           *        *

           *       *

           *       *

           *

           *

#include <stdio.h>

int main()
{
  
int inum, inum1, inum2;
  
int max;
  
int count;
    
  fprintf(stdout, 
"정수(3입력 : ");
  fscanf(stdin, 
"%d %d %d"&inum, &inum1, &inum2);

  fprintf(stdout, 
"%d  %d  %d\n=======\n", inum, inum1, inum2);
  
if(inum>inum1)
  {
    max
=inum;
  }
  
else
  {
    max
=inum1;
  }
  
if(max<inum2)
  {
    max
=inum2;
  }
  
  
for(count=0; count<max; count++)
  {
    
if((0<inum)&&(max>=inum))
    {
      fprintf(stdout, 
"*");
    }
    
else
    {
      fprintf(stdout, 
" ");
    }
    
if((0<inum1)&&(max>=inum1))
    {
      fprintf(stdout, 
"  *");
    }
    
else
    {
      fprintf(stdout, 
"   ");
    }
    
if((0<inum2)&&(max>=inum2))
    {
      fprintf(stdout, 
"  *");
    }
    fprintf(stdout, 
"\n");
    inum--;

    inum1--;

    inum2--;
  }
  
return 0;
}


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

C언어 과제 10  (0) 2010.10.27
C언어 과제 09  (0) 2010.10.25
C언어 도전과제 01 (소수와 합성수를 판단하여라)  (0) 2010.10.20
C언어 과제 07  (0) 2010.10.14
C언어 과제 06  (0) 2010.10.14