알고리즘 문제좀 도와주에요 ㅎㅎ

Post_Ada의 이미지

백준 문제 인데요 사진 첨부합니다.

제가 짠 코드는 이렇구요

#include<stdio.h>
#include<math.h>
float findMaxnum(float arr[], int num);
 
 
int main()
{
	int subnum;
	float grade[1000] = {0};
        scanf("%d", &subnum);
 
	if (subnum <= 1000)
	{
 
		for (int i = 0; i < subnum; i++)
		{
			scanf("%d", &grade[i]);
 
 
		}
 
	float maxnum = findMaxnum(&grade[subnum], subnum);
 
 
		for (int i = 0; i < subnum; i++)
		{
			float temp;
			temp = roundf(grade[i] / maxnum * 100);
			float   grade[i] = temp;
 
		}
 
		for (int i = 0; i < subnum; i++)
		{
			float sum;
			sum = 0;
			sum += grade[i];
 
			printf("%.2f", sum / subnum);
		}
 
 
 
 
	}
 
	else
	{
 
		printf("과목개수는 1000 이하 ");
		return 0;
	}
 
}
	float findMaxnum(float arr[], int num)
	{
		float max = arr[0];
		for (int i = 1; i < num; i++)
			if (arr[i] > max) max = arr[i];
 
		return max;
 
	}

이렇습니다.

main 함수에서 두번째 for문 float grade[i] = temp;

이부분에서 float 형인 배열인 grade 인덱스 값에 상수가 들어가야 된다고 나오는데요.

grade[i] 의 인덱스 값을 다른 값으로 for문을 이용해서 바꾸어주려면 어떻게 해야하나요?

File attachments: 
첨부파일 크기
Image icon 캡처.JPG65.47 KB
m4170의 이미지

1. float grade[i] = temp; -> 이건 컴파일러가 선언의 의미로 받아들이지 않을까요?
(원래 의도는 선언이 아니라 값을 저장하려고 하셨던 것으로 보입니다.)

2. scanf("%d", &grade[i]); -> %d가 의미하는게 무엇인지 grade의 변수 type과 비교하면서 다시 한번 확인해 보세요.

이상입니다.