2014-01-12 2 views
-1

까지만 배열 항목의 시퀀스를 출력하므로 코딩에 익숙하지 않으므로 주파수가 가장 낮은 번호부터 가장 높은 번호까지 인쇄하는 데 문제가 있습니다. 그것이 35을 출력한다 사용자 입력 (35) 5 42 2 예 : 5 36 : 0 37 : 0 38 : 0 39 : 0 40 : 0 41 : 6 42 : 5 43 : 0 44 : 0 45 : 0 46 : 0 47 : 0 48 : 4 49 : 0 50 : 2 도와주세요들!최소 점수에서 최대 점수 범위

+0

배열을 출력하는 방법을 모호하지 않았습니다. –

+0

분명히하려면 ,,,,, 35에서 50까지의 숫자는 점수 ,,, 그리고 5, 2, 6, 3, 4 같은 단일 숫자는 빈도이며 숫자는 수직으로 인쇄해야합니다. – user3081083

+0

그 도움 ? – user3081083

답변

0

std :: pair 배열을 정의하는 경우 할당을 수행하는 것이 더 간단합니다. 예를

std::pair<unsigned, unsigned> a = { { 35, 5 }, { 50, 2 }, { 41, 6 }, { 42, 3 }, { 48, 4 }, { 42, 2 } }; 

를 들어 다음 예를

auto p = std::minmax(std::begin(a), std::end(a), 
         [](const std::pair<unsigned, unsigned> &lhs, const std::pair<unsigned, unsigned> & rhs) 
         { 
         return (lhs.first < rhs.first); 
         }); 

를 들어 표준 알고리즘 std::minmax_element

을 사용할 수 있습니다 그리고 당신은

for (unsigned i = p.first->first; i <= p.second->first; i++) 
{ 
    // using std::accumulate or the range based for statement to calcukate the sum of frequencies 
} 

그러나 예를 들어 루프를 사용할 수 있습니다 I 기본 알고리즘이나 쌍을 모르는 것 같아요. 그래서 지금까지 자신이 한 일을 보여줘야합니다. :)

+0

그래, 나는 이것이 모두 꽤 새로운 것을 알고있다. 하지만 지금까지 내 코드 #include 네임 스페이스를 사용하여 표준; int main() { \t const int max_score = 50; \t int score [max_score]; \t int 주파수 = 0; \t int 점수; \t int 입력; cin >> 입력; \t for (int i = 0; i > score [i] >> 빈도; \t if (스코어 [i] <0) \t 중단; \t else 주파수 ++; } \t return 0; } – user3081083

+0

이게 더 낫다고 생각합니다. int main(). { cout << "퀴즈 점수 및 빈도를 입력하십시오."<< endl; . \t for (int i = 0; i > score [i] >> 빈도; . 주파수 ++; } \t return 0; } – user3081083

관련 문제