A sentimental robot

배열포인터 활용 본문

C

배열포인터 활용

GOD03219 2017. 12. 29. 20:15

#include<stdio.h>
#pragma warning (disable:4996)

const static char scoName[6][10] = { "Name","Kor","Eng","Mat","Total","Avg" };
void input(char(*pname)[10], int(*pscore)[4]);
void oper(int(*pscore)[4], float*pavg);
void output(char(*pname)[10], int(*pscore)[4], float*pavg);
void main()
{
 char name[3][10] = { 0, };     
 int score[3][4] = { 0, };     
 float avg[3] = { 0 };

 

 input(name, score);
 oper(score, avg);
 output(name, score, avg);


}

 

void input(char(*pname)[10], int(*pscore)[4])     // int(*pscore)[4] 한 행당 4개의 요소를 가지고 있는 int 2차원 배열을 가르키는 포인터

{

 int i, j;
 for (i = 0; i < 3; i++)
 {
  printf("%s input: ", scoName);
  scanf("%s", pname[i]);

 

  for (j = 0; j < 3; j++)
  {
   printf("%s input : ", scoName[j + 1]);
   scanf("%d", &pscore[i][j]);
  }


 }
}


void oper(int(*pscore)[4], float*pavg)
{
 int i, j;
 for (i = 0; i < 3; i++)
 {
  for (j = 0; j < 3; j++)
  {
   pscore[i][3] += pscore[i][j];
  }
  pavg[i] = pscore[i][3] / 3.f;
 }
}


void output(char(*pname)[10], int(*pscore)[4], float*pavg)
{
 int i, j = 0;


 for (i = 0; i < 6; i++)

      printf("%s\t", scoName + i);

 puts("");

 

 for (i = 0; i < 3; i++)
 {
  printf("%s\t", pname[i]);
  for (j = 0; j < 4; j++)
       printf("%d\t", pscore[i][j]);

  printf("%f\n", pavg[i]);


 }
}

 


 

'C ' 카테고리의 다른 글

구조체 배열  (0) 2017.12.29
구조체(typedef structure)  (0) 2017.12.29
포인터배열과 더블포인터  (0) 2017.12.29
함수매개변수로 [ ] 사용 해보기  (0) 2017.12.29
함수와 포인터를 사용한 1차원배열  (0) 2017.12.29