목차
1. 배열s에서 각 요소의 빈도 계산하기
s[5] = { 2,2,1,1,1 };
♣결과
♧코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<stdbool.h>
#include<time.h>
#include <stdlib.h>
#include <math.h>
#define SIZE 5
int main(void) {
int freq, i,j;
int s[SIZE] = { 2,2,1,1,1 };
int freq_arr[SIZE] = { -1,-1,-1,-1,-1 };
//배열s의 첫 숫자부터 차근차근 본다.
for (j = 0; j < SIZE; j++) {
if (freq_arr[j] != 0) {
freq = 1;
if (j != SIZE-1) {
for (i = j + 1; i < SIZE; i++) {
if (s[j] == s[i]) {
//나온 횟수를 구하고, 중복된 숫자가 나온 인덱스에는 freq_arr값을 0으로 만든다.
freq += 1;
freq_arr[i] = 0;
}
}
}
freq_arr[j] = freq;
printf("%d는 %d회 나옵니다\n", s[j], freq_arr[j]);
}
}
return 0;
}
//olivia_codingschool
2. 배열에서 특정 인덱스의 값을 지우고, 뒤의 요소들을 한 칸씩 앞으로 이동하기
♣결과
♧코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define SIZE 5
int main(void) {
int i, choice;
int s[SIZE] = { 1,2,3,4,5 };
printf("어느 자리를 지우겠습니까?(0~4)");
scanf("%d", &choice);
for (i = 0; i < SIZE; i++) {
if (i == choice) continue;
else if (i > choice) {
s[i-1] = s[i];
}
printf("%d", s[i]);
}
return 0;
}
//olivia_codingschool
3. 6개의 좌석을 예약하는 시스템 만들기
- 사용자에게 예약 여부를 확인하기 y/n
- 이미 예약된 자석은 다시 예약할 수 없다.
- 예약된 좌석은 1로, 안된 좌석은 0으로 표기한다.
♣결과
♧코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<stdbool.h>
#include <stdlib.h>
#define SIZE 6
int main(void) {
int seat[SIZE] = { 0,0,0,0,0,0 };
int book, i;
char yn;
bool flag = true;
while (flag) {
//자리 예약할지 묻기
printf("예약을 시작하시겠습니까? y/n");
scanf("%c", &yn);
if (yn == 'n') break;
else {
printf("몇 번째 자리를 예약하시겠어요?");
scanf("%d", &book);
getchar();
//예약진행하기
if (seat[book - 1] == 0) {
seat[book - 1] = 1;
//자리 출력하기
for (i = 0; i < SIZE; i++) {
printf("%d ", i + 1);
}
printf("\n");
for (i = 0; i < SIZE; i++) {
printf("%d ", seat[i]);
}
printf("\n");
}
else {
printf("이미 예약완료 된 좌석입니다. 다시 선택하세요\n");
}
}
}
return 0;
}
//olivia_codingschool
4. 5개 정수값의 평균, 분산, 표준편차 구하기
평균, 분산, 표준편차는 통계학에서 자주 사용되는 개념입니다. 평균, 분산, 표준편차는 통계학에서 매우 중요한 개념으로, 다양한 분야에서 활용됩니다.
1. 평균(Mean) 평균은 주어진 데이터의 총합을 데이터의 개수로 나눈 값으로, 데이터의 중심값을 나타내는 지표입니다. n개의 데이터가 주어졌을 때, 그 데이터의 평균은 다음과 같이 정의됩니다. 여기서 xi는 i번째 데이터를 나타냅니다.
2. 분산(Variance) 분산은 데이터의 퍼짐 정도를 나타내는 지표로, 데이터와 평균간의 편차(각 데이터와 평균간의 차이)의 제곱합을 데이터의 개수로 나눈 값입니다. n개의 데이터가 주어졌을 때, 그 데이터의 분산은 다음과 같이 정의됩니다. 여기서 xi는 i번째 데이터, x̄는 데이터의 평균을 나타냅니다.
3. 표준편차(Standard Deviation) 표준편차는 데이터의 퍼짐 정도를 나타내는 지표로, 분산의 양의 제곱근 값입니다. 즉, 분산은 제곱값이므로, 원래의 단위로 바꾸기 위해 제곱근을 취한 것입니다. n개의 데이터가 주어졌을 때, 그 데이터의 표준편차는 다음과 같이 정의됩니다. 여기서 xi는 i번째 데이터, x̄는 데이터의 평균, s는 데이터의 분산을 나타냅니다.
♣결과
♧코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<stdbool.h>
#include <stdlib.h>
#include <math.h>
#define SIZE 5
int main(void) {
int i, sum;
double mean, variance, v_sum, std, v_subtract;
int arr[SIZE];
// 배열 구하기
for (i = 0; i < SIZE; i++) {
printf("%d번째 숫자를 입력하세요__\b\b ", i + 1);
scanf("%d", &arr[i]);
}
// 평균 구하기
sum = 0;
for (i = 0; i < SIZE; i++) {
sum += arr[i];
}
mean = (double)sum / SIZE;
v_sum = 0;
// 표준편차 구하기
for (i = 0; i < SIZE; i++) {
v_subtract = (double)arr[i] - mean;
//printf("%lf ", v_subtract);
v_sum += v_subtract*v_subtract;
//printf("%lf ", v_sum);
}
variance = v_sum / SIZE;
std = sqrt(variance);
printf("평균 %lf, 분산 %lf, 표준편차는 %lf\n", mean, variance, std);
return 0;
}
5. 이동한 경로 표시하기
- 시작은 중앙에서 시작한다.
- 현재 자리에서 좌 또는 우로 랜덤하게 1칸씩 옆으로 이동이 가능하다.
- 기본 방향은 앞으로 나아간다.
♣결과
♧코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<stdbool.h>
#include<time.h>
#include <stdlib.h>
#include <math.h>
#define SIZE 10
int main(void) {
int direction, i,j, index;
char s[SIZE] = {'_', '_', '_', '_', '_', '_', '_', '_', '_', '_'};
srand(time(NULL));
//1회차
index = 4;
s[index] = '*';
for (i = 0; i < SIZE; i++) {
printf("%c ", s[i]);
}
printf("\n");
s[index] = '_';
//2회차
for (i = 0; i < SIZE; i++) {
if (i == 0) index = 4;
else {
direction = rand() % 2;
if (direction == 1) index += 1;
else index -= 1;
}
s[index] = '*';
for (j = 0; j< SIZE; j++) {
printf("%c ", s[j]);
}
printf("\n");
s[index] = '_';
}
return 0;
}
//olivia_codingschool
'C언어 > 참고서: C언어 콘서트' 카테고리의 다른 글
C언어 39차시 함수 원형 선언 (0) | 2023.04.04 |
---|---|
C언어 38차시 함수, 함수헤더, 파라미터, parameter, 함수몸체, 함수호출, call, argument (0) | 2023.04.04 |
C언어 36차시 배열 연습문제 2 (0) | 2023.04.04 |
C언어 35차시 배열 연습문제 1 (0) | 2023.04.04 |
C언어 34차시 배열 인덱스의 범위 넘어갈 때 발생하는 문제 (0) | 2023.03.29 |