함수와 포인터를 사용한 1차원배열
#include<stdio.h>
#pragma warning(disable:4996)
void input(char *scoName, char*name, int*score);
void oper(int*score, float*avg);
void output(char*scoName, char*name, int*score, float*avg);
void main()
{
char scoName[6][10] = { "Name", "Kor","Eng","Math","Total","Avg" };
char name[10] = { 0, };
int score[4] = { 0 };
float avg;
input(*scoName, name, score); // 매개변수를 1차원 주소로 넘겨주기
oper(score, &avg);
output(*scoName, name, score, &avg);
}
void input(char *scoName, char*name, int*score)
{
int i;
printf("%s input: ", scoName);
scanf("%s", name);
for (i = 0; i < 3 ; i++)
{
printf("%s input: ", scoName+(i+1)*10);
scanf("%d", score + i);
}
}
void oper(int*score, float*avg)
{
int i;
for (i = 0; i < 3; i++)
*(score + 3) += *(score + i);
*avg = *(score + 3) / 3.f;
}
void output(char*scoName, char*name, int*score, float*avg)
{
int i;
for (i = 0; i < 6; i++)
{
printf("%s\t", scoName);
scoName += 10; // 한 행(10byte)씩 옮기기
}
puts("");
printf("%s\t", name);
for (i = 0; i < 4; i++)
{
printf("%d\t", *(score + i));
}
printf("%f\n", *avg);
}