728x90
[1-8주차 정리]
9주차 필기 내용
//배열 (9-1) : 변수 여러 개 입력 받는 경우 한꺼번에 배열로 저장
//같은 자료형에 대한 여러 개 선언
//변수 10개 입력받아서 배열로 간편하게 선언, 저장
#include <stdio.h>
int main()
{
int n0, n1, n2, n3, n4, n5, n6, n7, n8, n9;
int n[10]; //크기 10인 정수형 배열 장소 선언
int i;
printf("Input 10 scores : ");
for (i = 0; i <= 9; i++) { //for문 돌면서 10개 숫자 순차
scanf_s("%d", &n[i]); //배열로 순차 입력받아 저장
}
printf("10 scores in reverse order: "); //역순 출력
for (i = 9; i >= 0; i--) {
printf("%d", n[i]);
}
return 0;
}
//10개 정수 입력 받아서 배열로 저장한 후, 배열의 값들 중 양수, 음수 구분 저장
#include <stdio.h>
int main() {
int num[10];
int pos_num = 0, neg_num = 0; //개수 세는 변수 0으로 초기화해둠
int n;
int i; //for 돌릴 때 사용할 컨트롤 정수i 선언
printf("Input 10 intteger numbers : ");
for (i = 0; i <= 9; i++) {
scanf_s("%d", &n);
num[i] = n;
}
for (i = 0; i <= 9; i++) {
if (num[i] > 0) //인덱스 i번째 배열 원소 값이 0보다 클 경우
pos_num++; //양의 정수 개수 변수 1증가 시킴
if (num[i] < 0) //원소 값 0보다 작은 경우 (음의 정수)
neg_num++; //음의 정수 개수 변수 1증가
}
printf("Number of positive integer inputs = %d\n ", pos_num);
printf("Number of negative integer inputs = %d\n", neg_num);
return 0;
}
//******(1) 양의 정수의 합, 음의 정수의 합
#include <stdio.h>
int main() {
int num[10]; //정수형 크기가 10인 배열 num을 선언
int pos_num = 0, neg_num = 0; //개수 세는 변수는 0으로 초기화해둠
int pos_sum = 0, neg_sum = 0; //양, 음의 정수끼리의 합 변수 선언
float pos_avg, neg_avg; //평균 변수 실수형 선언
int n;
int i;
printf("Input 10 integer numbers : ");
for (i = 0; i <= 9; i++) {
scanf_s("%d", &n);
num[i] = n;
}
for (i = 0; i <= 9; i++) {
if (num[i] > 0) { //원소값 양수인 경우
pos_num++;
pos_sum = pos_sum + num[i];
}
if (num[i] < 0) { //원소값 음수인 경우
neg_num++;
neg_sum = neg_sum + num[i];
}
}
printf("Number of positive integer inputs = %d\n ", pos_num);
if (pos_num == 0) printf("Sum of positive input can not be calculated , \n");
if (pos_num > 0) printf("Sum of positive inputs = %d", pos_sum);
printf("Number of negative integer inputs = %d\n", neg_num);
if (neg_num == 0) printf("Sum of negative input can not be calculated, \n");
if (neg_num > 0) printf("Sum of negative inputs = %d", neg_sum);
return 0;
}
//양의 정수 평균, 음의 정수 평균 구하기
#include <stdio.h>
int main() {
int num[10]; //정수형 크기가 10인 배열 num을 선언
int pos_num = 0, neg_num = 0; //개수 세는 변수는 0으로 초기화해둠
int pos_sum = 0, neg_sum = 0; //양, 음의 정수끼리의 합 변수 선언
float pos_avg, neg_avg; //평균 변수 실수형 선언
int n;
int i;
printf("Input 10 intteger numbers : ");
for (i = 0; i <= 9; i++) {
scanf_s("%d", &n);
num[i] = n;
}
for (i = 0; i <= 9; i++) {
if (num[i] > 0) { //원소값 양수인 경우
pos_num++;
pos_sum = pos_sum + num[i];
}
if (num[i] < 0) { //원소값 음수인 경우
neg_num++;
neg_sum = neg_sum + num[i];
}
}
printf("Number of positive integer inputs = %d\n ", pos_num);
if (pos_num == 0) {
printf("Sum of positive input can not be calculated\n");
printf("Average of positive input can not be calcuated");
}
if (pos_num > 0) {
printf("Sum of positive inputs = %d", pos_sum);
pos_avg = (float)pos_sum / (float)pos_num; //강제 형번환 후 평균 계산
printf("Average of positive inputs = %.3f\n", pos_avg);
}
printf("Number of negative integer inputs = %d\n", neg_num);
if (neg_num == 0) {
printf("Sum of negative input can not be calculated \n");
printf("Average of negative input can not be calcuated");
}
if (neg_num > 0) {
printf("Sum of negative inputs = %d", neg_sum);
neg_avg = (float)neg_sum / (float)neg_num; //강제 형변환 후 평균 계산
printf("Average of negative inputs = %.3f\n", neg_avg);
}
return 0;
}
//역순으로 출력 후 최대값, 최소값 찾기
#include <stdio.h>
int main() {
int num[10];
int i;
int n;
int max, min;
// 여기 변수는 0으로 초깃값 설정하면 제대로 최소,최댓값 못 찾아낸다. 내가 입력한 값들 중에서 비교되어야 함
printf("Input 10 integer numbers : ");
for (i = 0; i <= 0; i++) {
scanf_s("%d", % n);
num[i] = n;
}
max = num[0];
min = num[0]; //첫 원소를 min으로 받은 후 min보다 작은 원소를 min변수에 재저장
for (i = 0; i <= 9; i++) {
if (num[i] > max) max = num[i]; //new max 재설정
if (num[i] < min) min = num[i]; //new min 재설정
}
//for문 돌고 나오면 어쨋든 max변수에는 최댓값이 저장, min변수에는 최솟값이 저장
printf("Maximum number = %d\n ", max); //최댓값 출력
printf("Minimum number = %d\n", min); //최솟값 출력
return 0;
}
//몇 번째 최대, 몇 번째 최소인지 찾기
#include <stdio.h>
int main() {
int num[10];
int i;
int n;
int max, min;
int max_index, min_index; //몇 번째 최대, 최소인지 변수 선언
printf("Input 10 integer numbers : ");
for (i = 0; i <= 0; i++) {
scanf_s("%d", % n);
num[i] = n;
}
max = num[0];
max_index = 0;
min = num[0];
min_index = 0;
for (i = 0; i <= 9; i++) {
if (num[i] > max) {
max = num[i];
max_index = i; //최댓값 갖는 i인덱스를 저장함
}
if (num[i] < min) {
min = num[i];
min_index = i; //최솟값 갖는 i인덱스를 저장함
}
}
printf("Maximum number = %d\n ", max);
printf("Index of the maximum number = %d\n", max_index + 1);
//배열은 0번부터 시작하므로 +1해서 인덱스 번호 출력
printf("Minimum number = %d\n", min);
printf("Index of the minimum number = %d\n", min_index + 1);
//최솟값 저장된 인덱스i 출력
return 0;
}
10주차 필기 내용
//10-1강 배열을 사용하는 수열 (첫 두 숫자 입력받아서 수열)
#include <stdio.h>
int main() {
int num[20];
int i;
printf("Input the first 2 integer numbers of the numerical sequence");
scanf_s("%d", &num[0]);
scanf_s("%d", &num[1]);
for (i = 2; i <= 19; i++) {
num[i] = num[i - 2] + num[i - 1]; // a3 = a2 + a1 을 구현
}
printf("Numerical Sequence : \n");
for (i = 0; i <= 19; i++) {
printf("[%d] %d\n", i+1, num[i]); // 순서대로 출력
}
return 0;
}
//10-2강 분산 - 평균을 기준으로 성적 분포도 보여주는 것 (격차 퍼진 수준)
// V(x) = E(X^2) - {E(X)}^2 = 제곱의 평균 - 평균의 제곱
#include <stdio.h>
int main() {
int a[10]; //a반에 있는 10명의 학생 성적값
int sum; ///합
float avg; //평균
float var; // 분산 저장
float x; //분자
int i;
printf("Input 10 scores : "); //입력받은 정수 배열로 순차 저장
for (i = 0; i <= 9; i++) {
scanf_s("%d", &a[i]);
}
//합을 구한다
sum = 0;
for (i = 0; i <= 9; i++) {
sum = sum + a[i];
}
//평균을 구한다,
avg = (float)sum / 10;
//분산식의 분자에 해당하는 부분을 구한다
x = 0.0; //실수로 받음
for(i = 0; i <= 9; i++) {
x = x + (a[i] - avg) * (a[i] - avg);
}
//분산을 구한다.
var = x / 10;
printf("Sum = %d\n", sum);
printf("Average = %f\n", avg);
printf("Variance = %f\n ", var);;
return 0;
}
//10-2강 - 정렬(두 수 비교해서 큰 값 앞으로, 작은 값은 뒤로 (내림차순)
#include <stdio.h>
int main() {
int a[10] = { 5, 4, 6, 3, 7, 2, 8, 1, 9, 10 } ; //뒤죽박죽 숫자를 일렬로 정렬
int i, j; //for 두 번 돌릴 컨트롤 변수 두개 저장
int n, temp; //마지막 변수 n번째를 지정, 바꿔치기 할 임의의 변수 temp 선언
n = 9;
for (i = n - 1; i >= 0; i--) { //바깥으로 for한 번 돌리고
for (j = 0; j <= i; j++) { // j를 기준으로 비교 목적
if (a[j] < a[j + 1]) // 더 큰 수를 배열 앞으로 바꿔치기
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
printf("Result after Bubble sorting. \n");
for (i = 0; i <= 9; i++) {
printf("%d ", a[i]);
}
}
return 0;
}
//10-3강 입력값을 음수, 양수 배열로 구분 후
양수 분산, 음수 분산 각각 구하기
#include <stdio.h>
int main() {
int pos[10];
int neg[10];
int pos_num = 0, neg_num = 0;
int pos_sum = 0, neg_sum = 0;
float pos_avg, neg_avg;
float pos_var, neg_var;
float pos_son, neg_son; //분자 구하는 변수 선언
int i;
int n;
printf("Input 10 integer numbers: "); //입력값 10개 받음
for (i = 0; i <= 9; i++) {
scanf_s("%d", &n);
if (n > 0) { //양의 정수인 경우
pos_num++; //개수 변수 1 증가
pos[pos_num - 1] = n; //배열에 순차 저장하면서
pos_sum = pos_sum + n;
}
if (n < 0) { //음의 정수인 경우
neg_num++;
neg[neg_num - 1] = n;
neg_sum = neg_sum + n; //합 구하기
}
}
//평균 구하기
if (pos_num == 0) printf("There is no positive integer");
if (pos_num > 0) {
pos_avg = (float)pos_sum / (float)pos_num; //E(x)구함
pos_son = 0.0;
//양의 정수 분산 연산에 필요한 '분자' 구하기
for (i = 0; i = pos_num - 1; i++) {
pos_son = pos_son + (pos[i] - pos_avg) * (pos[i] - pos_avg);
}
//양의 정수의 분산 구하기
pos_var = pos_son / pos_num;
printf("Number of positive inputs = %d\n", pos_num);
printf("Sum of positive inputs = %d\n", pos_sum);
printf("Average of positive inputs = %f\n", pos_avg);
printf("Variance of positive inputs = %f\n", pos_var);
//평균 구하기
if (neg_num == 0) printf("There is no negative integer");
if (neg_num > 0) {
neg_avg = (float)neg_sum / (float)neg_num; //E(x)구함
neg_son = 0.0;
//음의 정수 분산 연산에 필요한 '분자' 구하기
for (i = 0; i = neg_num - 1; i++) {
neg_son = neg_son + (neg[i] - neg_avg) * (neg[i] - neg_avg);
}
//음의 정수의 분산 구하기
neg_var = neg_son / neg_num;
printf("Number of negative inputs = %d\n", neg_num);
printf("Sum of negative inputs = %d\n", neg_sum);
printf("Average of negative inputs = %f\n", neg_avg);
printf("Variance of negative inputs = %f\n", neg_var);
return 0;
}
}
}
11주차 필기 내용
//11-2강 사용자로부터 10개의 정수를 입력받은 후에
//홀수들의 분산과 짝수들의 분산을 각각 구하시오
//제곱의 평균 - 평균의 제곱 꼴로 다시 분산 구하기
#include <stdio.h>
int main() {
int even[10], odd[10]; //홀,짝 각각 저장할 배열 변수 2개 선언
int even_num=0, odd_num=0; //even=짝수, odd=홀수
int even_sum=0, odd_sum=0; //반복문 돌릴 목적으로 0초기화
float even_avg, odd_avg; //평균 변수
float even_2_avg, odd_2_avg; //제곱의 평균 변수
int even_2_sum = 0, odd_2_sum = 0; //제곱의 합
float even_var, odd_var; //분산 변수
float even_var_son, odd_var_son; //분자변수 각각 선언
float even_2_var, odd_2_var;//두 번째 분산 변수 선언
int i,j; //for 돌릴 컨트롤 변수 선언
int m; //입력받을 정수
printf("Input 10 integer numbers : ");
for (i = 1; i <= 10; i++) { //홀,짝 분류해서 각각의 배열에 나누어 저장
scanf_s("%d", &m);
if (m % 2 == 0) { //짝수의 경우
even_num++; //입력받은 짝수의 개수
even[even_num - 1] = m;
even_sum = even_sum + m;//합
even_2_sum = even_2_sum + m * m;//제곱의 합
}
if (m % 2 != 0) {//홀수인 경우
odd_num++;
odd[odd_num - 1] = m;
odd_sum = odd_sum + m;//합
odd_2_sum = odd_2_sum + m * m; //제곱의 합
}
}
//짝수에 대한 분산 연산 과정
if (even_num == 0) printf("Varianve of even number can not calculated");
if (even_num > 0) {
even_avg = (float)even_sum /(float)even_num;
//분산의 분자 구할 연산
even_var_son = 0.0;
for (i = 0; i = even_num - 1; i++) {
even_var_son = even_var_son + (even[i] - even_avg) * (even[i] - even_avg);
}
//분산을 구한다.
even_var = even_var_son / (float)even_num;
even_2_avg = (float)even_2_sum / (float) even_num; //제곱의 평균
//분산 = 제곱의 평균 - 평균의 제곱
even_2_var = even_2_avg - even_avg * even_avg;
//결과 출력
printf("Number of even numbers = %d\n", even_num);
printf("Sum of even numbers = %d\n", even_sum);
printf("Average of even numbers = %f\n", even_avg);
printf("Varianve of even numbers = %f\n", even_var);
printf("Variance2 of even numbers = %f\n", even_2_var);
}
//홀수에 대한 분산 연산 과정
if (odd_num == 0) printf("Varianve of odd number can not calculated");
if (odd_num > 0) {
odd_avg = (float)odd_sum / (float)odd_num;
//분산의 분자 구할 연산
odd_var_son = 0.0;
for (i = 0; i = odd_num - 1; i++) {
odd_var_son = odd_var_son + (odd[i] - odd_avg) * (odd[i] - odd_avg);
}
//분산을 구한다.
odd_var = odd_var_son / (float)odd_num;
odd_2_avg = (float)odd_2_sum / (float)odd_num; //제곱의 평균
//분산 = 제곱의 평균 - 평균의 제곱
odd_2_var = odd_2_avg - odd_avg * odd_avg;
//결과 출력
printf("Number of odd numbers = %d\n", odd_num);
printf("Sum of odd numbers = %d\n", odd_sum);
printf("Average of odd numbers = %f\n", odd_avg);
printf("Varianve of odd numbes = %f\n", odd_var);
printf("Varianve2 of odd numbers = %f\n", odd_2_var);
}
return 0;
}
//11-2강 ******표준편차 구하기
//표준편차 = 루트 분산
#include <stdio.h>
#include <cmath> //***루트 사용할 수학 전용 헤더파일 추가 (c++ 수학함수 ) vs (c <math.h>)
int main() {
int even[10], odd[10]; //홀,짝 각각 저장할 배열 변수 2개 선언
int even_num=0, odd_num=0; //even=짝수, odd=홀수
int even_sum=0, odd_sum=0; //반복문 돌릴 목적으로 0초기화
float even_avg, odd_avg; //평균 변수
float even_2_avg, odd_2_avg; //제곱의 평균 변수
int even_2_sum = 0, odd_2_sum = 0; //제곱의 합
float even_sd, odd_sd; //표준편차 변수 선언
float even_var, odd_var; //분산 변수
float even_var_son, odd_var_son; //분자변수 각각 선언
float even_2_var, odd_2_var;//두 번째 분산 변수 선언
int i, j; //for 돌릴 컨트롤 변수 선언
int m; //입력받을 정수
printf("Input 10 integer numbers : ");
for (i = 1; i <= 10; i++) { //홀,짝 분류해서 각각의 배열에 나누어 저장
scanf_s("%d", &m);
if (m % 2 == 0) { //짝수의 경우
even_num++; //입력받은 짝수의 개수
even[even_num - 1] = m;
even_sum = even_sum + m;//합
even_2_sum = even_2_sum + m * m;//제곱의 합
}
if (m % 2 != 0) {//홀수인 경우
odd_num++;
odd[odd_num - 1] = m;
odd_sum = odd_sum + m;//합
odd_2_sum = odd_2_sum + m * m; //제곱의 합
}
}
//짝수에 대한 분산 연산 과정
if (even_num == 0) printf("Varianve of even number can not calculated");
if (even_num > 0) {
even_avg = (float)even_sum /(float)even_num;
//분산의 분자 구할 연산
even_var_son = 0.0;
for (i = 0; i = even_num - 1; i++) {
even_var_son = even_var_son + (even[i] - even_avg) * (even[i] - even_avg);
}
//분산을 구한다.
even_var = even_var_son / (float)even_num;
even_2_avg = (float)even_2_sum / (float) even_num; //제곱의 평균
//분산 = 제곱의 평균 - 평균의 제곱
even_2_var = even_2_avg - even_avg * even_avg;
//표준편차 구한다
even_sd = sqrt(even_var); // 루트
//결과 출력
printf("Number of even numbers = %d\n", even_num);
printf("Sum of even numbers = %d\n", even_sum);
printf("Average of even numbers = %f\n", even_avg);
printf("Varianve of even numbers = %f\n", even_var);
printf("Variance2 of even numbers = %f\n", even_2_var);
printf("Standard Deviation of even numbers = %f\n", even_sd);
}
//홀수에 대한 분산 연산 과정
if (odd_num == 0) printf("Varianve of odd number can not calculated");
if (odd_num > 0) {
odd_avg = (float)odd_sum / (float)odd_num;
//분산의 분자 구할 연산
odd_var_son = 0.0;
for (i = 0; i = odd_num - 1; i++) {
odd_var_son = odd_var_son + (odd[i] - odd_avg) * (odd[i] - odd_avg);
}
//분산을 구한다.
odd_var = odd_var_son / (float)odd_num;
odd_2_avg = (float)odd_2_sum / (float)odd_num; //제곱의 평균
//분산 = 제곱의 평균 - 평균의 제곱
odd_2_var = odd_2_avg - odd_avg * odd_avg;
//표준편차 구한다
odd_sd = sqrt(odd_var); // 루트
//결과 출력
printf("Number of odd numbers = %d\n", odd_num);
printf("Sum of odd numbers = %d\n", odd_sum);
printf("Average of odd numbers = %f\n", odd_avg);
printf("Varianve of odd numbes = %f\n", odd_var);
printf("Varianve2 of odd numbers = %f\n", odd_2_var);
printf("Standard Deviation of odd numbers = %f\n", odd_sd);
}
return 0;
}
//11-2강 사용자로부터 10개의 정수를 입력받은 후에
//홀수들의 분산과 짝수들의 분산을 각각 구하시오
#include <stdio.h>
int main() {
int even[10], odd[10]; //홀,짝 각각 저장할 배열 변수 2개 선언
int even_num=0, odd_num=0; //even=짝수, odd=홀수
int even_sum=0, odd_sum=0; //반복문 돌릴 목적으로 0초기화
float even_avg, odd_avg;
float even_var, odd_var;
float even_var_son, odd_var_son; //분자변수 각각 선언
int i; //for 돌릴 컨트롤 변수 선언
int m; //입력받을 정수
printf("Input 10 integer numbers : ");
for (i = 1; i <= 10; i++) { //홀,짝 분류해서 각각의 배열에 나누어 저장
scanf_s("%d", &m);
if (m % 2 == 0) { //짝수의 경우
even_num++; //입력받은 짝수의 개수
even[even_num - 1] = m; //짝수의 개수에서 1빼줘야 인덱스 번호가 맞음
even_sum = even_sum + m; //힙
}
if (m % 2 != 0) {//홀수인 경우
odd_num++;
odd[odd_num - 1] = m;
odd_sum = odd_sum + m;
}
}
//짝수에 대한 분산 연산 과정
if (even_num == 0) printf("Varianve of even number can not calculated");
if (even_num > 0) {
even_avg = (float)even_sum /(float)even_num;
//분산의 분자 구할 연산
even_var_son = 0.0;
for (i = 0; i = even_num - 1; i++) {
even_var_son = even_var_son + (even[i] - even_avg) * (even[i] - even_avg);
}
//분산을 구한다.
even_var = even_var_son / (float)even_num;
printf("Number of even numbers = %d\n", even_num);
printf("Sum of even numbers = %d\n", even_sum);
printf("Average of even numbers = %f\n", even_avg);
printf("Varianve of even numbes = %f\n", even_var);
}
//홀수에 대한 분산 연산 과정
if (odd_num == 0) printf("Varianve of odd number can not calculated");
if (odd_num > 0) {
odd_avg = (float)odd_sum / (float)odd_num;
//분산의 분자 구할 연산
odd_var_son = 0.0;
for (i = 0; i = odd_num - 1; i++) {
odd_var_son = odd_var_son + (odd[i] - odd_avg) * (odd[i] - odd_avg);
}
//분산을 구한다.
odd_var = odd_var_son / (float)odd_num;
printf("Number of odd numbers = %d\n", odd_num);
printf("Sum of odd numbers = %d\n", odd_sum);
printf("Average of odd numbers = %f\n", odd_avg);
printf("Varianve of odd numbes = %f\n", odd_var);
}
return 0;
}
12주차 필기 내용
#include <stdio.h>
#include <cmath>
using namespace std;
int main() {
int scores[3][4];
int i, j;
int m;
int sum[3];
float avg[3];
int max[3];
int mx;
int min[3];
int mn;
float var[3];
float son;
float sd[3];
int sum2[4];
float avg2[4];
int max2[4];
int min2[4];
float var2[4];
float son2;
float sd2[4];
//입력받아서 2차원 배열 저장
printf("Input scores of each of 3students");
for (i = 0; i <= 2; i++) {
for (j = 0; j <= 3; j++) {
scanf_s("%d", &m);
scores[i][j] = m;
}
}
//각 학생별 Sum값 배열 구현
for (i = 0; i <= 2; i++) {
sum[i] = 0;
for (j = 0; j <= 3; j++) {
sum[i] = sum[i] + scores[i][j];
}
}
//각 학생별 Avg값 배열 구현
for (i = 0; i <= 2; i++) {
avg[i] = (float)sum[i] / 4;
}
//각 학생별 Max값 배열 구현
for (i = 0; i <= 2; i++) {
mx = scores[i][0];
for (j = 0; j <= 3; j++) {
if (mx < scores[i][j]) mx = scores[i][j];
}
max[i] = mx;
}
//각 학생별 min값 배열 구현
for (i = 0; i <= 2; i++) {
mn = scores[i][0];
for (j = 0; j <= 3; j++) {
if (mn > scores[i][j]) mn = scores[i][j];
}
min[i] = mn;
}
//각 학생별 4과목에 대한 분산 배열 구현
for (i = 0; i <= 2; i++) {
son = 0.0;
for (j = 0; j <= 3; j++) {
son = son + (scores[i][j] - avg[i]) * (scores[i][j] - avg[i]);
}
var[i] = son / 4; //학생별 4과목 성적을 처리했으므로 n=4로 나눔
}
//각 학생별 4과목에 대한 표준 편차 배열 구현
for (i = 0; i <= 2; i++) {
sd[i] = sqrt(var[i]); //각 학생 i에 대한 분산에 루트씌워서 i각각에 대한 표준편차
}
/////////////////////////////////////////////////////////////////////
//4과목 각각에 대한 학생들의 성적 합
for (j = 0; j <= 3; j++) {
sum2[j] = 0;
for (i = 0; i <= 2; i++) {
sum2[j] = sum2[j] + scores[i][j];
}
}
//4과목 각각에 대한 학생들 성적 평균
for (j = 0; j <= 3; j++) {
avg2[j] = (float)sum2[j] / 3;
}
//4과목 각각에 대한 학생 성적 최고점
for (j = 0; j <= 3; j++) {
max2[j] = scores[0][j];
for (i = 0; i <= 2; i++) {
if (max2[j] < scores[i][j]) max2[j] = scores[i][j];
}
}
//4과목 각각에 대한 학생 성적 최저점
for (j = 0; j <= 3; j++) {
min2[j] = scores[0][j];
for (i = 0; i <= 2; i++) {
if (min2[j] > scores[i][j]) min2[j] = scores[i][j];
}
}
//4과목 각각에 대한 학생들의 성적 분산
for (j = 0; j <= 3; j++) {
son2 = 0.0;
for (i = 0; i <= 2; i++) {
son2 = son2 + (scores[i][j] - avg2[j]) * (scores[i][j] - avg2[j]);
}
var2[j] = son2 / 3;
}
//4과목 각각에 대한 학생들의 성적 표준편차
for (j = 0; j <= 3; j++) {
sd2[j] = sqrt(var2[j]);
}
//결과출력
printf("\n");
printf("\n");
printf("\tKor\tEng\tMath\tPhy\tSUM\tAVG\tMAX\tMIN\tVAR\tSD\n");
for (i = 0; i <= 2; i++) {
for (j = 0; j <= 3; j++) {
printf("\t%d", scores[i][j]);
}
printf("\t%d", sum[i]);
printf("\t%.2f", avg[i]);
printf("\t%d", max[i]);
printf("\t%d", min[i]);
printf("\t%.2f", var[i]);
printf("\t%.2f", sd[i]);
printf("\n");
}
printf("SUM2");
for (j = 0; j <= 3; j++) printf("\t%d", sum2[j]);
printf("\n");
printf("AVG2");
for (j = 0; j <= 3; j++) printf("\t%.2f", avg2[j]);
printf("\n");
printf("MAX2");
for (j = 0; j <= 3; j++) printf("\t%d", max2[j]);
printf("\n");
printf("MIN2");
for (j = 0; j <= 3; j++) printf("\t%d", min2[j]);
printf("\n");
printf("VAR2");
for (j = 0; j <= 3; j++) printf("\t%.2f", var2[j]);
printf("\n");
printf("SD2");
for (j = 0; j <= 3; j++) printf("\t%.2f", sd2[j]);
printf("\n");
return 0;
}
13주차 필기 내용
//13-2강 main함수 내부에서 두 정수 입력받아서 합,평균 작성 프로그램 - (1)
#include <stdio.h>
int main() {
int num1, num2;
int sum;
float avg;
printf("Input two integer numbers: ");
scanf_s("%d", &num1);
scanf_s("%d", &num2);
sum = num1 + num2;
avg = (float)sum / 2;
printf("%d + %d = %d\n ", num1, num2, sum);
printf("Average = %.2f\n", avg);
return 0;
}
-------------------------------------------------------------------------------------
//13-2강
//외부 함수 선언 후, main에서 외부 함수 호출하여 처리하는 프로그램 - (2)
//외부함수 만들기 - (3)
#include <stdio.h>
//(1) 연산과 출력을 모두 외부함수 자체에서 처리할 경우 void (1)
//반환할 것이 없으므로 sum연산과 avg연산을 한꺼번에 처리
void F_SumAndAverage(int x1, int x2) { //call by value
int sum;
float avg;
sum = x1 + x2;
avg = (float)sum / 2;
printf("%d + %d = %d\n", x1, x2, sum);
printf("Average = %.2f\n", avg);
}
//(2) 연산은 외부함수에서 하되, 출력은 main가서 할 경우 return 자료형으로 반환 (2)
//이 경우 return은 한 번만 가능해서 sum함수 따로, avg함수 따로 처리
int F_Sum(int x1, int x2) {
int sum;
sum = x1 + x2;
return sum;
}
float F_AVG(int x1, int x2) {
float avg;
avg = (float)(x1 + x2) / 2;
return avg;
}
int main() {
int num1, num2;
int sum;
float avg;
printf("Input two integer numbers: ");
scanf_s("%d", &num1);
scanf_s("%d", &num2);
sum = F_Sum(num1, num2);
avg = F_AVG(num1, num2);
printf("%d + %d = %d\n", num1, num2, sum);
printf("Average = %.2f\n", avg);
return 0;
}
//-그럼 retrun 여러 개 보내고 싶을 땐 ? = 포인터를 사용 !
//13-3강 포인터 = 주소 , 포인터로 받아서 변수 바꿔치기
//값을 보내는 방법 - call by value(값) / call by reference(주소)
#include <stdio.h>
void F_Swapping(int *x1, int *x2) { //call by reference
int temp;
printf("\n2 Before swapping in function\n");
printf("num1 = %d, num2 = %d\n", *x1, *x2);
//swapping
temp = *x1;
*x1 = *x2;
*x2 = temp;
printf("\n3After swapping in function\n");
printf("num1 = %d, num2 = %d\n", *x1, *x2);
}
int main() {
int num1, num2;
int temp; //임시변수 선언
printf("Input two integer numbers: ");
scanf_s("%d", &num1);
scanf_s("%d", &num2);
printf("\n1Before swapping\n");
printf("num1 = %d, num2 = %d\n", num1, num2);
F_Swapping(&num1, &num2); // 매개변수로 값이 아닌 주소
printf("\n4After swapping\n");
printf("num1 = %d, num2 = %d\n", num1, num2);
return 0;
}
-------------------------------------------------------------------------------------
#include <stdio.h>
void F_Swapping(int *x1, int *x2) {
int temp;
printf("\n2 Before swapping in function\n");
printf("num1 = %d, num2 = %d\n", *x1, *x2);
//swapping
temp = *x1;
*x1 = *x2;
*x2 = temp;
printf("\n3After swapping in function\n");
printf("num1 = %d, num2 = %d\n", *x1, *x2);
}
int main() {
int num1, num2;
int temp; //임시변수 선언
printf("Input two integer numbers: ");
scanf_s("%d", &num1);
scanf_s("%d", &num2);
printf("\n1Before swapping\n");
printf("num1 = %d, num2 = %d\n", num1, num2);
F_Swapping(&num1, &num2); // 매개변수로 값이 아닌 주소를 보내야 함
printf("\n4After swapping\n");
printf("num1 = %d, num2 = %d\n", num1, num2);
return 0;
}
14주차 필기 내용
14-2강 강의 내용 - 배열을 매개변수로 받는 외부 함수 사용 -(1)
#include <stdio.h>
int F_MAX(int s[], int size ) {
int max;
int i;
max = s[0];
for (i = 0; i <= size - 1; i++) {
if (max < s[i]) max = s[i];
}
return max;
}
int F_MIN(int s[], int size ) {
int min;
int i;
min = s[0];
for (i = 0; i <= size - 1; i++) {
if (min > s[i]) min = s[i];
}
return min;
}
int main() {
int score[10]; //10개 입력받아서 10크기의 배열에 저장
int i;
int max, min;
int n;
printf("Input 10 integer numbers: ");
for (i = 0; i <= 9; i++) { //for문 돌면서 차례로 저장
scanf_s("%d", &n);
score[i] = n; //값을 받아서 넣음
}
//배열 이름, 배열 크기 순으로 매개변수
max = F_MAX(score, 10);
printf("Max number = %d \n", max);
min = F_MIN(score, 10);
printf("Min number = %d \n", min);
return 0;
}
//MAX,MIN 동시에 구하는 외부함수 구하기 - (2)
#include <stdio.h>
//void로 사용-반환할 것 없음
void F_MaxAndMin(int s[], int size, int* mx, int* mn) {
int i;
*mx = s[0];
for (i = 0; i <= size - 1; i++) {
if (*mx < s[i]) *mx = s[i];
}
*mn = s[0];
for (i = 0; i <= size - 1; i++) {
if (*mn > s[i]) *mn = s[i];
}
//값은 반환하지 않지만 main으로 돌아갈 때 주소는 돌아감
}
int main() {
int score[10];
int i;
int max, min;
int n;
printf("Input 10 integer numbers: ");
for (i = 0; i <= 9; i++) {
scanf_s("%d", &n);
score[i] = n;
}
F_MaxAndMin(score, 10, &max, &min); //외부함수에서 주소는 돌아와서 처리됨
//배열 이름, 크기, call by reference이용해서 여러 값 반환하기
printf("Max number = %d \n", max);
printf("Min number = %d \n", min);
return 0;
}
//14-3강 구조체 - 여러 개의 서로 다른 자료형을 하나의 집합 형태로 묶은 새로운 자료형을 의미
//typedef struct : 자료형 묶음
//각 학생의 4과목 성적을 하나의 구조체로 묶어서 처리함 (.)연산자를 활용해서 각각 지정
#include <stdio.h>
typedef struct course {
int kor;
int eng;
int math;
int phy;
float avg;
};
int main() {
struct course s0, s1; //구조체 자료형을 사용할 학생 두 명을 선언
int n;
printf("Input scores of 4 subjects for each of two strudents: ");
scanf_s("%d", &n); s0.kor = n;
scanf_s("%d", &n); s0.eng = n;
scanf_s("%d", &n); s0.math= n;
scanf_s("%d", &n); s0.phy = n;
s0.avg = (float)(s0.kor + s0.eng + s0.math + s0.phy) / 4;
printf("Average of strudent s0 = %.2f\n", s0.avg);
scanf_s("%d", &n); s1.kor = n;
scanf_s("%d", &n); s1.eng = n;
scanf_s("%d", &n); s1.math = n;
scanf_s("%d", &n); s1.phy = n;
s1.avg = (float)(s1.kor + s1.eng + s1.math + s1.phy) / 4;
printf("Average of strudent s0 = %.2f\n", s1.avg);
return 0;
}
//14-3강 구조체 - 여러 개의 서로 다른 자료형을 하나의 집합 형태로 묶은 새로운 자료형을 의미
//typedef struct : 자료형 묶음
//각 학생의 4과목 성적을 하나의 구조체로 묶어서 처리함 (.)연산자를 활용해서 각각 지정
#include <stdio.h>
typedef struct course {
int subjects[4];
int sum;
float avg;
};
int main() {
struct course s[3]; //구조체 자료형을 사용할 학생 두 명을 선언
int n;
int i,j;
printf("Input scores of 4 subjects for each of 3 strudents: ");
for (i = 0; i <= 2; i++) { //학생
for (j = 0; j <= 3; j++) { //과목
scanf_s("%d", &n); s[i].subjects[j] = n;
}
s[i].sum = 0;
for (j = 0; j <= 3; j++) { // 3학생 각각 s[i]에 대한 subjects과목4개 배열값의 합
s[i].sum = s[i].sum + s[i].subjects[j];
}
s[i].avg = (float)s[i].sum / 4; //평균
}
//결과 출력
printf("\tKOR\tENG\tMATH\tPHY\tSUM\tAVG\n");
for (i = 0; i <= 2; i++) {
printf("s%d", i); //학생 s0, s1, s2 지칭용
for(j = 0; j <= 3; j++) {
printf("\t%d", s[i].subjects[j]);
}
printf("\t%d", s[i].sum);
printf("\t%.2f\n", s[i].avg);
}
return 0;
}
#include <stdio.h>
#include <cmath>
using namespace std;
int main() {
int scores[3][4];
int i, j;
int m;
int sum[3];
float avg[3];
int max[3];
int mx;
int min[3];
int mn;
float var[3];
float son;
float sd[3];
int sum2[4];
float avg2[4];
int max2[4];
int min2[4];
float var2[4];
float son2;
float sd2[4];
//입력받아서 2차원 배열 저장
printf("Input scores of each of 3students");
for (i = 0; i <= 2; i++) {
for (j = 0; j <= 3; j++) {
scanf_s("%d", &m);
scores[i][j] = m;
}
}
//각 학생별 Sum값 배열 구현
for (i = 0; i <= 2; i++) {
sum[i] = 0;
for (j = 0; j <= 3; j++) {
sum[i] = sum[i] + scores[i][j];
}
}
//각 학생별 Avg값 배열 구현
for (i = 0; i <= 2; i++) {
avg[i] = (float)sum[i] / 4;
}
//각 학생별 Max값 배열 구현
for (i = 0; i <= 2; i++) {
mx = scores[i][0];
for (j = 0; j <= 3; j++) {
if (mx < scores[i][j]) mx = scores[i][j];
}
max[i] = mx;
}
//각 학생별 min값 배열 구현
for (i = 0; i <= 2; i++) {
mn = scores[i][0];
for (j = 0; j <= 3; j++) {
if (mn > scores[i][j]) mn = scores[i][j];
}
min[i] = mn;
}
//각 학생별 4과목에 대한 분산 배열 구현
for (i = 0; i <= 2; i++) {
son = 0.0;
for (j = 0; j <= 3; j++) {
son = son + (scores[i][j] - avg[i]) * (scores[i][j] - avg[i]);
}
var[i] = son / 4; //학생별 4과목 성적을 처리했으므로 n=4로 나눔
}
//각 학생별 4과목에 대한 표준 편차 배열 구현
for (i = 0; i <= 2; i++) {
sd[i] = sqrt(var[i]); //각 학생 i에 대한 분산에 루트씌워서 i각각에 대한 표준편차
}
/////////////////////////////////////////////////////////////////////
//4과목 각각에 대한 학생들의 성적 합
for (j = 0; j <= 3; j++) {
sum2[j] = 0;
for (i = 0; i <= 2; i++) {
sum2[j] = sum2[j] + scores[i][j];
}
}
//4과목 각각에 대한 학생들 성적 평균
for (j = 0; j <= 3; j++) {
avg2[j] = (float)sum2[j] / 3;
}
//4과목 각각에 대한 학생 성적 최고점
for (j = 0; j <= 3; j++) {
max2[j] = scores[0][j];
for (i = 0; i <= 2; i++) {
if (max2[j] < scores[i][j]) max2[j] = scores[i][j];
}
}
//4과목 각각에 대한 학생 성적 최저점
for (j = 0; j <= 3; j++) {
min2[j] = scores[0][j];
for (i = 0; i <= 2; i++) {
if (min2[j] > scores[i][j]) min2[j] = scores[i][j];
}
}
//4과목 각각에 대한 학생들의 성적 분산
for (j = 0; j <= 3; j++) {
son2 = 0.0;
for (i = 0; i <= 2; i++) {
son2 = son2 + (scores[i][j] - avg2[j]) * (scores[i][j] - avg2[j]);
}
var2[j] = son2 / 3;
}
//4과목 각각에 대한 학생들의 성적 표준편차
for (j = 0; j <= 3; j++) {
sd2[j] = sqrt(var2[j]);
}
//결과출력
printf("\n");
printf("\n");
printf("\tKor\tEng\tMath\tPhy\tSUM\tAVG\tMAX\tMIN\tVAR\tSD\n");
for (i = 0; i <= 2; i++) {
for (j = 0; j <= 3; j++) {
printf("\t%d", scores[i][j]);
}
printf("\t%d", sum[i]);
printf("\t%.2f", avg[i]);
printf("\t%d", max[i]);
printf("\t%d", min[i]);
printf("\t%.2f", var[i]);
printf("\t%.2f", sd[i]);
printf("\n");
}
printf("SUM2");
for (j = 0; j <= 3; j++) printf("\t%d", sum2[j]);
printf("\n");
printf("AVG2");
for (j = 0; j <= 3; j++) printf("\t%.2f", avg2[j]);
printf("\n");
printf("MAX2");
for (j = 0; j <= 3; j++) printf("\t%d", max2[j]);
printf("\n");
printf("MIN2");
for (j = 0; j <= 3; j++) printf("\t%d", min2[j]);
printf("\n");
printf("VAR2");
for (j = 0; j <= 3; j++) printf("\t%.2f", var2[j]);
printf("\n");
printf("SD2");
for (j = 0; j <= 3; j++) printf("\t%.2f", sd2[j]);
printf("\n");
return 0;
}
//위의 내용 합본 pdf 파일
728x90
'C++, C언어 > [문법]_C언어' 카테고리의 다른 글
C언어_ch10_정리 (0) | 2021.12.20 |
---|---|
C응용_ch09_정리 (0) | 2021.12.20 |
혼.공.C언어_프로그램예제_전체코드정리 (0) | 2021.07.27 |
혼.공.C언어_전범위_정리 (0) | 2021.07.27 |
나도코딩_C언어_전범위정리 (0) | 2021.07.27 |