알고리즘 문제좀 도와주에요 ㅎㅎ
글쓴이: Post_Ada / 작성시간: 금, 2017/08/25 - 4:53오후
백준 문제 인데요 사진 첨부합니다.
제가 짠 코드는 이렇구요
#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:
첨부 | 파일 크기 |
---|---|
캡처.JPG | 65.47 KB |
Forums:
1. float grade[i] = temp; -
1. float grade[i] = temp; -> 이건 컴파일러가 선언의 의미로 받아들이지 않을까요?
(원래 의도는 선언이 아니라 값을 저장하려고 하셨던 것으로 보입니다.)
2. scanf("%d", &grade[i]); -> %d가 의미하는게 무엇인지 grade의 변수 type과 비교하면서 다시 한번 확인해 보세요.
이상입니다.
댓글 달기