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=0; 6>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=1; 8>=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
--------------
* * *
* * *
* *
* *
* *
*
*
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;
}