C언어/디딤돌 C언어 예제

[C언어 소스] n명의 학생 성적 입력받아 출력(malloc 함수 사용)

언제나휴일 2016. 12. 1. 15:36
반응형

[C언어 소스] n명의 학생 성적 입력받아 출력(malloc 함수 사용)


Program.c



#include <stdio.h>
#include <stdlib.h>
 
void InputScores(int *base,int asize); //asize 명의 성적을 입력받는 함수
void ViewScores(int *base,int asize); //asize 명의 성적을 출력하는 함수
int InputScore(int num); //num 번의 학생 성적을 입력받는 함수
int main()
{
   
int *base = 0;  //동적으로 할당받아 학생들의 성적을 관리할 메모리의 시작 주소
   
int max_stu= 0;   //관리할 학생
    printf(
"최대 관리할 학생 수를 입력하세요.\n");
    scanf_s(
"%d",&max_stu);
    base = (
int *)malloc(sizeof(int) * max_stu); //성적을 보관할 메모리를 할당
    InputScores(base,max_stu);
//학생들의 성적 입력 요청
    ViewScores(base,max_stu);
//학생들의 성적 출력
    free(base);
//동적으로 할당한 메모리 해제
   
return 0;
}
 
void InputScores(int *base,int asize)
{
   
int i = 0;
   
for(i = 0;  i<asize; i++)
    {
        base[i] = InputScore(i+1);
//i+1 번의 학생 성적을 입력받아 base[i] 대입
    }
}
void ViewScores(int *base,int asize)
{
   
int i = 0;
   
for(i = 0;  i<asize; i++)
    {
        printf(
"%d : %d \n",i+1, base[i]); //i+1 번의 성적 출력
    }
}
int InputScore(int num)
{
   
int score;
    printf(
"%d 번의 성적을 입력하세요.\n",num);
    scanf_s(
"%d",&score);
   
return   s


실행 결과

최대 관리할 학생 수를 입력하세요.

3

1 번의 성적을 입력하세요.

90

2 번의 성적을 입력하세요.

60

3 번의 성적을 입력하세요.

80

1번: 90

2번: 60

3번: 80



본문

[디딤돌 C언어] 83. malloc 함수



반응형