과일 가격의 평균 구하기
- 과일 이름, 가격, 과일 철을 미리 선언
- 출력 함수를 사용하여 미리 선언된 과일의 정보 출력
- 과일들의 평균 가격 구하기
- define으로 SIZE를 3으로 정의
#include<stdio.h>
#define SIZE 3
typedef struct Fruit {
char name[20]; //20byte
int price; //4byte
char season[10]; //20byte
}F;
void main() {
F arrFruit[SIZE] = { //구조체(2차원) 배열
{"사과", 1500, "가을"},
{"배", 2000, "가을"},
{"바나나", 900, "사계절"}
};
double sum = 0;
double avg = 0;
for (int i = 0; i < SIZE; i++) {
printf("%s %d %s\n", arrFruit[i].name, arrFruit[i].price, arrFruit[i].season);
sum += arrFruit[i].price;
}
avg = sum / SIZE;
printf("\n");
printf("과일 평균 가격 : %.0lf원\n", avg);
}
학생들의 국영수 점수 총합 및 평균 출력
- 구조체를 사용하여 학생 번호, 이름, 성별, 점수 변수를 선언 / typedef 사용
- 1,2반 각각 3명의 학생이 있으므로 2차원 배열 생성
- sizeof를 사용하여 배열의 길이 구하기, 이때 sizeof(데이터 타입)으로 나눠줘야 정확한 값이 출력
#include<stdio.h>
#define rowSIZE 2
#define colSIZE 3
/*
1반 학생 : 연경, 효진, 수지
2반 학생 : 상욱, 정환, 본길
*/
typedef struct Student {
int studentNumber;
char studentName[10];
char studentGender[5];
int studentScore[3];
}std;
void main() {
std arrstd[rowSIZE][colSIZE];
int count = 0;
int s_length = sizeof(arrstd[0][0].studentScore) / sizeof(int);
int ban_sum[rowSIZE] = { 0, };
double ban_avg[rowSIZE] = {0, };
int sum = 0;
double avg = 0.0;
for (int i = 0; i < rowSIZE; i++) {
count = 0;
for (int j = 0; j < colSIZE; j++) {
count++;
arrstd[i][j].studentNumber = count;
printf("1학년 %d반 %d번 학생 이름 : ", i+1, arrstd[i][j].studentNumber);
scanf_s("%s", arrstd[i][j].studentName, sizeof(arrstd[i][j].studentName)); //크기를 알려줘야함.
printf("%s 학생 성별 : ", arrstd[i][j].studentName);
scanf_s("%s", arrstd[i][j].studentGender, sizeof(arrstd[i][j].studentGender));
printf("%s 학생의 국영수 점수를 입력하세요.\n", arrstd[i][j].studentName);
for (int k = 0; k < s_length; k++) {
scanf_s("%d", arrstd[i][j].studentScore + k);
ban_sum[i] += arrstd[i][j].studentScore[k];
}
ban_avg[i] = (double)ban_sum[i] / colSIZE;
}
sum += ban_sum[i];
}
avg = (double)sum / (rowSIZE * colSIZE);
for (int i = 0; i < rowSIZE; i++) {
for (int j = 0; j < colSIZE; j++) {
printf("1학년 %d반 %d번 %s 학생\n",
i+1, arrstd[i][j].studentNumber, arrstd[i][j].studentName);
printf("국영수 점수 : ");
for (int k = 0; k < s_length; k++) {
printf("%d점 ", arrstd[i][j].studentScore[k]);
}
printf("\n");
}
printf("===========================\n");
}
for (int i = 0; i < rowSIZE; i++) {
printf("%d반 총합 및 평균 : %d점, %.2lf점\n\n",
i+1, ban_sum[i], ban_avg[i]);
}
printf("===========================\n");
printf("1학년 전체 총합 및 평균 : %d점, %.2lf점", sum, avg);
}
감사합니다!
2021.08.08
'C언어' 카테고리의 다른 글
[자료구조 - C언어] 정렬(Sort) - Bubble, Insertion, Selection (0) | 2021.08.30 |
---|---|
[C언어] 로또 번호 뽑기 (0) | 2021.08.17 |
[C언어] 구조체(1) (0) | 2021.08.07 |
[C언어] 1차원 배열 (0) | 2021.08.03 |
[C언어] 교통카드, 카페 주문하기 예제 (0) | 2021.08.02 |