테스트 케이스가 여러 개 주어지는데 테스트 케이스 하나만 작동이 되게 작성하셨네요
그리고 이건 제 질문인데, 배열 크기를 선언 할 때 c/c++에서는 그 크기가 변수가 아닌 상수일 때만 가능한데,
int c;
scanf("%d ",&c);
int N[c];
이렇게 선언하는 것도 가능한가요??
4344번 - 평균은 넘겠지
음...확실하진 않지만.....malloc을 안 써도 되느냐, 이 뜻인것이죠?
여기서 굳이 malloc을 쓰지않아도 가능하더라고요.
실제 답지에서도 malloc을 안 썼고요..
뭐가 문제일까요?ㅠㅠㅠㅠ
#include <stdio.h>
int main(){
int c, i, average, sum, k, numstu, l;
float output;
scanf("%d \n", &c);
int N[1000];
for (l = 1; l <= c; l++) {
scanf("%d ", &numstu);
sum = 0;
for (i = 0; i < numstu; i++) {
scanf("%d", &N[i]);
sum += N[i];
}
average = sum / numstu;
k = 0;
for (i = 0; i < numstu; i++) {
if (N[i] > average) {
k++;
}
}
output = 100 * k / (float)numstu;
printf("%.3f%%\n", output);
}
}
감사합니다!!! ㅠㅠ
문제 어디에도 배열을 정수형으로 선언하라는 말이 없는데 컴파일 상 앞서 말한 오류가 뜨면서 안되네요... 제 비주얼 스투디오로는 오류하나 없이 말끔하게 돌아갑니다..
#include <iostream>
using namespace std;
int main() {
long double num, k, sum = 0, cnt = 0;
cin >> num;
long double *Per = new long double[num];
long double *average = new long double[num];
for (int i = 0; i < num; i++)
{
cin >> k;
long double *caseNum = new long double[k];
for (int j = 0; j < k; j++)
{
cin >> caseNum[j];
sum += caseNum[j];
}
average[i] = sum / k; // 각 케이스의 평균을 저장
for (int t = 0; t < k; t++)
{
if (caseNum[t] > average[i])//각 케이스의 점수가 평균을 넘는지 확인
{
cnt++;
continue;
}
}
Per[i] = (cnt / k) * 100;
sum = 0;
cnt = 0;
}
for (int i = 0; i < num; i++)
{
cout << fixed;
cout.precision(3);//소수점 넷째짜리에서 반올림한 후 셋째짜리까지만 출력
cout << Per[i] << '\n';
}
}
댓글을 작성하려면 로그인해야 합니다.
dengelanvil 7년 전
어디가 문제인가요??
도와주시면 감사하겠습니다