728x90
Struct과 포인터를 활용해서 입력한 점수 저장하고 출력하기
포스트 난이도: HOO_Intern
# Example Code
이번 예제코드에서는 Struct과 Pointer를 활용해서 사용자가 입력한 점수를 저장하고 다시 출력하면서 평균값을 산출해 낼 수 있다. 코드의 내용 자체는 매우 간단하기에 이번 예제코드에서 중점적으로 봐야 하는 부분은 Struct과 포인터가 어떻게 사용되는지이다. 코드 자체에서 하고자 하는 프로세스 자체가 간단하기 때문에 각 함수의 역할들을 이해하기 수월하다.
#include <stdio.h>
#include <stdlib.h>
struct node {
float value;
struct node* next;
};
struct node* head = NULL;
void displayList() {
struct node* nodePtr = head;
while (nodePtr != NULL) {
printf("%.2f ", nodePtr->value);
nodePtr = nodePtr->next;
}
}
void insert_end(float num) {
struct node* newNode = (struct node*)malloc(sizeof(struct node));
newNode->value = num;
newNode->next = NULL;
if (head == NULL) {
head = newNode;
} else {
struct node* last = head;
while (last->next != NULL) {
last = last->next;
}
last->next = newNode;
}
}
float findAverage() {
struct node* nodePtr = head;
float sum = 0;
int count = 0;
while (nodePtr != NULL) {
sum += nodePtr->value;
count++;
nodePtr = nodePtr->next;
}
if (count == 0) {
return 0.0;
}
return sum / count;
}
int main() {
int numExams=7;
float examScore;
printf("\nEnter seven exam scores for your class: \n");
for (int i = 0; i < numExams; i++) {
printf("Enter exam score #%d: ", i + 1);
scanf("%f", &examScore);
insert_end(examScore);
}
printf("\nHere are all the exam scores you have entered: \n");
printf(" List of Exam Grades: ");
displayList();
printf("\n Class Average: %.2f\n", findAverage());
return 0;
}
# github link
https://github.com/WhoisHOO/HOOAI/blob/main/C%20Examples/simple_struct_pointer_grade_average
728x90
'Programming Languages > C and C++' 카테고리의 다른 글
[C++ Examples/Arduino] Blink 예제코드 및 설명 (1) | 2024.01.14 |
---|---|
[C Examples] 버블 정렬 (Bubble sort)을 활용해서 티켓 추첨하기 (0) | 2023.12.04 |
[C Example Code] queue를 활용한 환자의 우선 순위 나타내기: malloc(), queue, struct, point, void() (0) | 2023.11.29 |
[C Examples] 출력되는 문장 거꾸로 뒤집기: void printReverse(), sizeof(), if() (1) | 2023.11.28 |
[C Examples] Stack을 활용해서 Stack 값 바꿔보기, Dynamic stack (2) | 2023.11.09 |
댓글