안녕 형들 변수 정의가 너무 더러워도 봐줘
"사용자로 부터 5 명의 학생의 수학, 국어, 영어 점수를 입력 받아서 평균이 가장 높은 사람 부터 평균이 가장 낮은 사람까지 정렬되어 출력하도록 하세요. 특히, 평균을 기준으로 평균 이상인 사람 옆에는 '합격', 아닌 사람은 '불합격' 을 출력하는"
프로그램 짜고있는데 자꾸 오류를 내뿜어서
내가 초보라서 어디가 잘못된지 캐치를 못하고있어서
프갤 고수횽들이 가르쳐줬으면 좋겠어
#include<stdio.h>
int average(int (*arr)[3], int row);
int main()
{
int arr[5][3];
int i, j;
for(i=0; i<5; i++){
for(j=0; j<3; j++){
printf("%d번 학생의 %d입력 : ", i+1, j);
scanf("%d", &arr[i][j]);
}
}
average(arr, 5);
system("PAUSE");
return 0;
}
int average(int (*arr)[3], int row)
{
int i, j;
int sum[5]={0}; //각 학생의 점수의 합
int avg[5]={0}; //각 학생의 평균
int total_sum; //모든 학생의 점수의 합
int total_avg; //총 학생의 평균
int *temp;
int *std;
for(i=0; i<5; i++){
for(j=0; j<3; j++){
sum[i]+=arr[i][j]; //학생 각각의 총점
}
total_sum+=sum[i]; //총점
avg[i]=sum[i]/3; //학생 각각의 평균
}
total_avg=total_sum/3; //총 평균
std=avg; //std변수에 평균을 저장해둔 avg배열 입력
for(i=1; i<5; i++){
for(j=0; j<4; j++){
if(std[i]>std[j]){ //번 학생의 평균이 j번 학생의 평균보다 높으면
*temp=std[i]; //std배열에 저장된 위치를 서로 변경
std[i]=std[j];
std[j]=*temp;
}
}
}
printf("높은순서\n");
for(i=0; i<5; i++){
printf("%d ", std[i]);
if(avg>=total_avg[i]){
printf("합격");
}else if(avg<total_avg[i]){
printf("불합격");
}
printf("\n");
}
return 0;
}
나같으면 구조체를 만든다