PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2010/03/26 19:12:09
Name 김영대
Subject C++ 질문입니다.
마지막 등수 출력에서 막혔습니다.

출력 결과가

예를 들어

15
46
45
22



4
1
2
3


이런식으로 되야 합니다.

등수가 나와야 되는건데.. 저는 이상하게 쓰레기 값이 나오네요...ㅠㅠ




#include <iostream>
using namespace std;

int main()
{
        int example[10] = {0};
        double sum=0;
        
        cout << "데이터를 입력하시오. " << "\n";
        cout << "\n\n";
        for (int i=0; i<sizeof(example)/sizeof(example[0]); ++i)
        {
                cout << "(" << i+1 << ")" << "번 학생:";
                cin >> example[i];
                sum += example[i];
        }
        for (i=0; i<10; ++i)
        {
                cout << "(" << i+1 << ")";
                cout << example[i];
                cout << "  ";
        }
        ////////////// ////////////// ////////////// ////////////// ////////////// //////////////  
        //평균 구하기        

        cout << "\n\n";
        cout << "평균:";
        cout << sum/(sizeof(example)/sizeof(example[0]));
        
        ////////////// ////////////// ////////////// ////////////// ////////////// //////////////  
        //가장 높은 점수와 몇 번째 학생인지
        
        int temp1 = example[0];
        
        
        for (i=0; i<sizeof(example)/sizeof(example[0]); ++i)
        {
                if (temp1<example[i])
                {
                        temp1=example[i];
                }
        }
        cout << "\n\n";
        cout << "가장 높은 점수:" << temp1 << "점";
        
        
        int temp2 = 0;
        
        for (i=0; i<sizeof(example)/sizeof(example[0]); ++i)
        {
                if (example[temp2]<example[i])
                {
                        temp2=i;
                }
        }
        cout << "\n\n";
        cout << "(" << temp2+1 << ")" << "번째 있는 학생";
        cout << "\n";
        
        ////////////// ////////////// ////////////// ////////////// ////////////// //////////////
        //내림차순        
        cout << "\n\n";
        cout << "내림차순";
        cout << "\n";
        {
                int temp3 = 0;
                for (i=0; i<sizeof(example)/sizeof(example[0]); ++i)
                {
                        for (int j=i; j<sizeof(example)/sizeof(example[0]); ++j)
                        {
                                if (example[i] < example[j])
                                {
                                        temp3 = example[j];
                                        example[j] = example[i];
                                        example[i] = temp3;
                                }
                        }
                        cout << example[i]<< "  ";
                }
                
                
        }

        ////////////// ////////////// ////////////// ////////////// ////////////// //////////////
        //등수출력

        
        cout << "\n\n";
        int count[] = {0};

        for(i=0; i<sizeof(example)/ sizeof(example[0]); ++i)
        {
                for(int j=0; j<sizeof(example)/ sizeof(example[0]); ++j)
                {
                        if(example[i] > example[j])
                        {
                                ++count[i];
                        }
                }
        }
        for (i=0; i<sizeof(example)/ sizeof(example[0]); ++i)
        {
                cout << count[i];
                cout << "\n";
        }
        return 0;
}

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
10/03/26 19:58
수정 아이콘
쓰레기 값이 나온다면, count[] 초기화가 안 된 건데요, 그보다 count[]=
0
; 이렇게 선언하면 몇개짜리 배열이 만들어 지나요?
저러면 하나짜리 배열 만드는 것 아닌가요? 저렇게 써 본 적이 없어서 잘 모르겠네요;
그리고 등수가 제대로 안 나오는 거라면, 내림차순 정렬을 하고 등수 출력해서 그런 것 같네요.
또한 등수 계산할 때, i보다 j가 크면 i의 등수가 높아야 되는데 반대로 돼 있고요, 저렇게 하면 0등도 나오겠네요. 1로 초기화 하든가 < 대신에 <=를 넣어야 할 것 같아요.

마지막으로 별로 상관은 없는데 sizeof(example)/ sizeof(example[0]) 이 연산만 위 코드에서 200번 이상 연산하게 되어 있는데, n=sizeof(example)/ sizeof(example[0]) 같은 변수 하나 선언하고 이걸 쓰면 어떨까요?
김영대
10/03/27 11:53
수정 아이콘
와 감사합니다. 특히 마지막 줄에 답변 정말 대박이네요. ㅠㅠ 왜 그 생각을 못 했을까요.!!
감사합니다. ^^!!!!
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
77823 신검받기전에 종합검진 받으려고 합니다. [4] 구라타2098 10/03/26 2098
77822 잉크알에서 무한공급기 구매했습니다. [4] Neo2679 10/03/26 2679
77821 날아라 슈퍼보드 - 환상서유기 [8] tjgusA2542 10/03/26 2542
77820 조인성씨 지난 4월 입대했는데 왜 벌써 상병이죠? [8] 뜨거운눈물3257 10/03/26 3257
77819 괜찮은 남성 옷쇼핑몰 있나요.. [5] 도달자2371 10/03/26 2371
77818 sk2 화장품 남성용... N 남성 피부 미백화장품이 있나요? [2] sad_tears2293 10/03/26 2293
77817 이 옷 입고 다녀도 괜찮을까요? [21] BBCrunch2576 10/03/26 2576
77816 아이팟 터치 케이스 질문입니다~ [4] 오월1610 10/03/26 1610
77815 데스크탑 샀는데요, 필수 기본 프로그램좀 추천해주세요... [4] SK Lee1823 10/03/26 1823
77814 넷북과 데스크탑 사이에 자료 전송을 위해 데이터 전송 케이블을 샀는데 사용법을 모르겠네요. [3] 풋내기나그네2004 10/03/26 2004
77813 스킨로션에 대한 질문입니다 [2] 자판2463 10/03/26 2463
77812 네이트온 관련 질문입니다. [3] Chico2176 10/03/26 2176
77811 피겨 세계선수권 남싱 우승한 다카하시 선수요 Calum1639 10/03/26 1639
77809 뮤직비디오를 구입할 수 있는 곳이 있나요? [7] OnlyJustForYou2093 10/03/26 2093
77808 tvn 러브스위치에 관해 질문드립니다. [3] 율본좌1953 10/03/26 1953
77807 수동 운전차량 소유자분들께 묻습니다~ [5] SkPJi1929 10/03/26 1929
77806 월급 통장 활용법 [1] yellinoe2105 10/03/26 2105
77805 [운동] 헬스 후 식사에 대해서 [8] airmoo3476 10/03/26 3476
77804 상큼한 식사가 뭐가 있을까요? [6] Siestar2164 10/03/26 2164
77803 철권5 타임릴리즈 캐릭터 얻는 방법 좀 알려주세요. [3] 독수리의습격3223 10/03/26 3223
77802 온게임넷 예전 프로리그 VOD는 언제쯤 다시 볼수있을런지? 슬러거1601 10/03/26 1601
77801 C++ 질문입니다. [2] 김영대2002 10/03/26 2002
77800 c++ 관련 질문이에요. [1] Coa1628 10/03/26 1628
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로