티스토리 뷰
컴퓨터프로그래밍 11주 Quiz
(quiz-1) 다음과 같이 배열 arr[10]에 데이터가 있다. 프로그램을 완성하시오.
(함수 추가하지 말 것)
(1) 배열 값들을 출력
(2) 평균값을 소숫점 2자리까지 출력
(3) 최대값을 찾아서 출력
(4) 최소값을 찾아서 출력
(1) 실행화면 Capture
(2) 프로그램 소스코드
HWP에서 Text 붙여넣기 할 때 색상이 잘못되는 경우 해결 방법
(Ctrl-A 전체선택 > 서식 > 글자모양 > 테두리/배경 > 면색 --> 흰색)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void main() // 함수 추가하지 말 것
{
int i, n = 10, max, min, sum;
double avg;
int arr[10] = { 10, 30, 5, 17, 44, 13, 120, 88, 9, 101 };
// 평균 avg 계산
sum = 0;
// 최대값 max 찾는다
max = arr[0];
// 최소값 min 찾는다
min = arr[0];
printf("(1) ");
// 배열값 모두 출력
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
if (max < arr[i]) max = arr[i];
if (min > arr[i]) min = arr[i];
sum += arr[i];
}
printf("\n");
avg = (double)sum / (double)n;
printf("(2) 평균 = %.2lf\n", avg);
printf("(3) 최대 = %d\n", max);
printf("(4) 최소 = %d\n", min);
}
(quiz-2) input_array(), print_array(), compute_sum(), compute_avg(), find_max(), find_min() 함수는 각각 배열을 입력, 배열을 출력, 배열의 합을 return, 평균값을 계산해서 return, 배열의 최대값과 최소값을 구해서 return 하는 함수들이다. 함수들을 완성하시오. (main은 수정하지 말 것)
(1) 실행화면 Capture
(2) 프로그램 소스코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void print_array(int arr[], int n);
void input_array(int arr[], int n) // n개의 정수값을 배열에 입력
{
for (int i = 0; i < n; i++) {
printf("%d번 입력 : ", i + 1);
scanf("%d", &arr[i]);
}
print_array(arr ,n);
}
void print_array(int arr[], int n) // 배열값을 출력
{
for (int i = 0; i < n; i++)
printf("%d ", arr[i]);
printf("\n");
}
int compute_sum(int arr[], int n) { // 배열의 합을 return
int i, sum = 0;
for (i = 0; i < n; i++)
sum += arr[i];
return sum;
}
double compute_avg(int arr[], int n) // 배열의 평균을 return
{
int sum = 0;
for (int i = 0; i < n; i++)
sum += arr[i];
return (double)sum / n;
}
int find_max(int arr[], int n) // 배열에서 최대값을 찾아서 return
{
int i, max;
max = arr[0];
for (i = 0; i < n; i++)
if (max < arr[i]) max = arr[i];
return max;
}
int find_min(int arr[], int n) // 배열에서 최소값을 찾아서 return
{
int i, min;
min = arr[0];
for (i = 0; i < n; i++)
if (min > arr[i]) min = arr[i];
return min;
}
void main() // main은 수정하지 말 것
{
int arr[10];
input_array(arr, 10);
printf("합 = %d\n", compute_sum(arr, 10));
printf("평균 = %lf\n", compute_avg(arr, 10));
printf("최대 = %d\n", find_max(arr, 10));
printf("최소 = %d\n", find_min(arr, 10));
}
(quiz-3) rand() 함수를 이용하여 주사위를 시뮬레이션한다. 주사위 2개를 10,000번 굴렸을 때 화면과 같이 2~12가 각각 몇 번 나오는지, 몇 %를 차지하는지 출력하는 프로그램을 완성하시오. 편의상 srand()는 생략한다.
Hint : 배열 count[13] 에 주사위 2~12이 나온 횟수를 보관한다. 즉, count[2]에는 2가 나온 횟수, count[12]에는 12가 나온 횟수를 구한다. dice1 = rand()%6+1, dice2=rand()%6+1 로 으로 각각 1~6를 난수로 생성하고 count[dice1+dice2]++ 하면 주사위 나온 횟수를 누적할 수 있다.
(1) 실행화면 Capture
(2) 프로그램 소스코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<stdlib.h>
#include<time.h>
// 난수와 배열을 이용 주사위 2개를 10,000번 굴렸을 때 2~12가 나온 횟수와 % 구하기.
void main()
{
int i, dice1, dice2, n = 10000, count[13];
// srand()는 생략
srand(time(NULL));
for (i = 0; i < 13; i++)
{
count[i] = 0;
}
// 주사위 2개를 n번 굴리고 count[] 값에 누적시킨다.
for (i = 0; i < n; i++)
{
dice1 = 1 + rand() % 6;
dice2 = 1 + rand() % 6;
count[dice1 + dice2]++;
}
// 주사위 나온 횟수와 %를 출력한다.
// 화면과 같이 정렬을 맞출것
for (i = 2; i < 13; i++)
{
printf("%2d: %4d (%4.2lf)\n", i, count[i], (double)count[i] / n * 100);
}
}
(quiz-4) 학생 5 의 국어, 영어, 수학 점수를 보관하는 2차원 배열 data[][]와 총점을 보관하는 1차원 배열 sum[]을 선언하고 5명의 데이터를 입력받고 학생 각각의 총점과 평균을 출력하는 프로그램을 완성하시오.
(1) 실행화면 Capture
(2) 프로그램 소스코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void main() // 함수나 변수 추가해도 됨
{
int i, j;
int data[5][3]; // 5명 3과목 저장하는 2차원 배열 선언
int sum[5]; // 5명의 총점을 저장하는 1차원 배열 선언
// 5명의 국,영,수 성적 입력,
for (int i = 0; i < 5; i++)
{
printf("%d번 성적 입력 (국어 영어 수학) : ", i + 1);
scanf("%d %d %d", &data[i][0], &data[i][1], &data[i][2]);
}
// 총점 sum[]을 계산
for (int i = 0; i < 5; i++)
{
sum[i] = data[i][0] + data[i][1] + data[i][2];
}
// 5명의 총점, 평균 출력 (총점은 정수 3자리, 평균은 소숫점 2자리까지)
for (int i = 0; i < 5; i++)
{
printf("%d번 총점=%d 평균=%4.2lf\n", i + 1, sum[i], (double)sum[i] / 3.0);
}
}
'2024 컴퓨터 프로그래밍 퀴즈' 카테고리의 다른 글
한성대학교 컴퓨터 프로그래밍 9주차 퀴즈(과제) (0) | 2024.04.30 |
---|