본문 바로가기

ETC Programmings

calloc 함수를 통한 동적 2차원 배열 만들기

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

#include <stdio.h>
#include <stdlib.h>
int main(){
 int iNum, i, j, temp;
 int **value;

 int first = 0;
 int last = 300;
 
 printf("몇 명인가요?\n");
 scanf("%d", &iNum);

 value = (int **)calloc(iNum, sizeof(int *));

 for(i = 0 ; i < iNum ; i++) {
  value[i] = (int *)calloc(4, sizeof(int));
  printf("성적을 입력해주세요\n");
  for (j = 0 ; j < 3 ; j++) {
   printf("점수?\n");
   scanf("%d", &temp);
   value[i][j] = temp;
   value[i][3] += temp;
  }
 }

 for(i = 0 ; i < iNum ; i++) {
  printf("%d 번째 학생의 점수\n", i);
  for(j = 0 ; j < 4 ; j++) {
   printf("%d 과목 점수 : %d\n", j, value[i][j]);
  }
 }

 for (i = 0 ; i < iNum ; i++) {
  if (value[i][3] > first)
   first = value[i][3];
 }

 for (i = 0 ; i < iNum ; i++) {
  if (value[i][3] < last)
   last = value[i][3];
 }

 printf("1등인 학생의 총점은 %d\n", first);
 printf("%d등인 학생의 총점은 %d\n", iNum, last);
}


2차원 배열을 만들고.. 1차 배열에는 학생, 2차 배열에는 해당 학생의 성적을 입력하는 소스, calloc 함수를 이용해서 동적인 2차원 배열을 만드는 팁이 있다.. 더불어 최소값과 최대값도 구하는 알고리즘도 적용시켰다. 다만 아쉬운 점이라면 아직 문자열을 배우지 않았다게 - -;;; 좀 흠이다.. String 으로 쓸수 있었으면;;