주사위를 10만번 던져서 나오는 1, 2, 3, 4, 5, 6에 대한 횟수를 배열로 요약하여 출력하고, 배열에 저장된 횟수를 이용하여 1, 2, 3, 4, 5, 6이 나올 확률을 계산하고 출력하는 프로그램을 작성하시오.
참고로 주사위를 던져서 나오는 수(1~6)는 C 언어의 rand() 함수를 이용하여 작성하시오.
[출력]
[소스]
#include <stdio.h>
#include <stdlib.h> // rand()함수를 사용하기 위해
#include <time.h> //srand(time(NULL))을 사용하기 위해
int main(void){
float dice[7] = {0,}; // 주사위의 수 1~6을 해야하니 dice[6]을 위해 배열은 dice[7]로 초기화 , {0,}으로 함으로서 배열 모두 0으로 초기화
int x;
int num; // 1~6까지의 숫자
srand(time(NULL)); // #include <time.h>를 사용하여 시간에 따라 rand() 함수가 다른 값을 가짐
for(x=1; x<=100000; x++){
num = 1 + (rand() % 6);
dice[num]++;
}
for(x=1; x<=6; x++){
printf("100,000번 중 주사위 %d가 나온 횟수 : %d\n", x, (int)dice[x]);
printf("100,000번 중 주사위 %d가 나올 확률 : %f\n", x, dice[x]/100000);
printf("--------------------------------------------------\n");
}
return 0;
}
은행에 대하여 저축과 인출을 처리할 수 있는 프로그램을 작성하시오.
은행에 돈을 저축하는 함수인 save(int money)와 은행으로부터 돈을 인출하는 withdraw(int money) 함수를 구현한다. 저축 금액이 양수일 때는 save 함수가 음수일 때는 draw 함수가 호출된다.
위의 두 함수를 이용하여 아래와 같은 역할을 수행할 수 있는 프로그램을 작성하시오.
[예시]
저축하고자 하는 금액(종료는 0) = 100
지금까지의 저축 금액은 100만원 입니다.
저축하고자 하는 금액(종료는 0) = 200
지금까지의 저축 금액은 300만원 입니다.
저축하고자 하는 금액(종료는 0) = -50
지금까지의 저축 금액은 250만원 입니다.
저축하고자 하는 금액(종료는 0) = 0
끝
사용자로부터 일련의 데이터를 입력 받아서 최소값, 최대값, 그리고 평균을 찾는 프로그램을 작성하시오.
데이터를 입력 받는 동안에 사용자가 음수를 입력하면 데이터의 입력을 끝내고 그 때까지의 최소값, 최대값, 평균을 구하여 출력한다.
[예시]
데이터 입력 = 30
데이터 입력 = 21
데이터 입력 = 60
데이터 입력 = 53
데이터 입력 = -1
입력한 데이터 중에서 최소값 = 21
입력한 데이터 중에서 최대값 = 60
입력한 데이터의 평균 = 41
[출력]
[소스]
#include <stdio.h>
int main(void){
int x; // 데이터 입력
int count=0; // while문 횟수
int max, min; // 최댓값, 최솟값
int sum=0; // 평균을 구하기 위한 총합
int average; // 평균
while(1){ //무한반복
printf("데이터 입력 : ");
scanf("%d", &x);
if(x<0)
break; // 음수 입력시 while문 벗어나기
count++;
if(count == 1){ // 처음으로 받은 x의 값을 max와 min 초기화
max = x;
min = x;
}
if(x>max)
max = x;
if(x<min)
min = x;
sum += x;
}
average = sum / count;
printf("입력한 데이터 중에서 최소값 = %d\n", min);
printf("입력한 데이터 중에서 최댓값 = %d\n", max);
printf("입력한 데이터의 평균 = %d\n", average);
return 0;
}
절대 평가로 학생들의 학점을 계산하는 프로그램을 작성하여보자. 한 학생에 대하여 중간 고사와 기발 고사 점수를 입력 받아 아래의 규칙에 따라서 학생의 학점을 결정하여 출력한다.
(1) 중간고사, 기말고사를 차례대로 사용자로부터 입력 받는다.
(2) 중간고사와 기말고사의 평균값이 90점 이상이면 A, 80점 이상이면 B, 70점 이상이면 C, 60점 이상이면 D, 60점 미만이면 F학점이라고 출력하고 종료한다.
[예시]
중간 고사 점수를 입력하시오: 90
기말 고사 점수를 입력하시오: 80
당신의 평균점수는 85 점이며, 학점은 B 입니다.
[출력]
[소스]
#include <stdio.h>
int main(void){
int mid, final; // 중간고사, 기말고사 성적
int average; // 평균
printf("중간 고사 점수를 입력하시오 : ");
scanf("%d",&mid);
printf("기말 고사 점수를 입력하시오 : ");
scanf("%d",&final);
average = (mid + final) / 2;
if(average>=90){
printf("당신의 성적은 %d 점이며, 학점은 A입니다.\n", average);
}
else if(average>=80){
printf("당신의 성적은 %d 점이며, 학점은 B입니다.\n", average);
}
else if(average>=70){
printf("당신의 성적은 %d 점이며, 학점은 C입니다.\n", average);
}
else if(average>=60){
printf("당신의 성적은 %d 점이며, 학점은 D입니다.\n", average);
}
else{
printf("당신의 성적은 %d 점이며, 학점은 F입니다.\n", average);
}
return 0;
}
사용자로부터 입력 받은 세 개의 정수 중에서 가장 큰 수를 출력하는 프로그램을 작성하시오.
[예시]
첫 번째 정수를 입력하시오: 30
두 번째 정수를 입력하시오: 20
세 번째 정수를 입력하시오: 56
가장 큰 정수는 56 입니다.
[출력]
[소스]
#include <stdio.h>
int main(void){
int x,y,z; // 세 개의 정수
int max; // 최대의 정수 입력 받을 변수
printf("첫 번째 정수를 입력하시오 : ");
scanf("%d", &x);
printf("두 번째 정수를 입력하시오 : ");
scanf("%d", &y);
printf("세 번째 정수를 입력하시오 : ");
scanf("%d", &z);
if(x<y)
{
max = y;
if(y<z){
max = z;
}
}
else
{
max = x;
if(x<z){
max = z;
}
}
printf("가장 큰 정수는 %d 입니다.\n", max);
return 0;
}