수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

에러 기껏잡았는데 실행하면 오류뜹니다.;;

걸때

2023.04.01

[문제]

5명의 중간,기말 성적을 합쳐 sum[5]배열에 저장한후

1.sum배열을 순서대로 출력하고(100점,30점...)

2.sum배열의 순대로 5명의 학번(rank={1,2,3,4,5})를 출력하고

(ex:100점,30점,80점 일때- 1번,3번,2번)

3.rank[5]배열을 가리키는(주소값을갖는) rankptr[5]포인터배열을 이용해 1번과 똑같이 출력합니다.

(ex: 출력하기위한 연산순서: rankptr-ptr-sum )
문제발생

에러는 하나도 안나는데 실행해보면 결과가 이상하고 오류같은게 뜹니다.

아래 빨강색 표시된곳을 바꾸니깐 결과값이 이상하게 됐습니다.

(배열 rankptr는 rank배열의 주소값을 갖는 포인터배열입니다. 즉 포인터를 가지고 있는 배열입니다.

또 파랑색으로 표시한곳은 이상하다고 생각한 곳입니다.

또 print_c 이함수도 좀 체크해주세요..

잘못된것이 있으면 고쳐주세요..

급합니다 ㅠㅠ 부탁드릴게요
다 못하시겠으면 몇개라도 해주세요

있는 내공 모드 드리겠습니다. 꼭 부탁드립니다.
//━━━━━━━━━━━━━━━━━━━선언 시작━━━━━━━━━━━━━━━━━━//

#includeiostream

using namespace std;

void rankingNptr(int * const ,int * const ,int * const );//등수 정하고(3번 1등 4번2등...), rankptr로 rank 배열을 가리키게함/*☆*/
void sum(int * const ,int * const ,int, int * const );//sum (중간고사 , 기말고사, 요소수(5명),합을저장할 배열 )/*★*/
void change(int * const, int * const);/*★*/
void print_a(int);//번호순대로 성적(sum)을 찍음 1번 _점/*★*/
void print_b(int);// 성적순으로 성적(sum)을 찍음 1등 _점
void print_c(int,int);// print_c: rankprt에 있는 정보를 시작점으로 하여 rank 정보를 이용하여 grade 배열의 정보를 프린트 합니다.
// 결과는 print_a와 같으나 절차가 다름니다.(rankptr-rank-sum)//━━━━━━━━━━━━━━━━━━━함수 정의 시작━━━━━━━━━━━━━━━━//

/*☆*/
void rankingNptr(int * const g_sum, int * const ranking, int * const rankingptr ){//포인터배열을 받는 rankingptr가변수인데요 틀렸으면 고쳐주세요.
//sum,rank,rankptr 배열 받음;

int n, x;
//┌----한배열안에서 요소가 큰순서대로 재배열한다-----┐
for(x=1;x6;x++){
for(n=0;n5;n++){
if(g_sum[n]g_sum[n+1])
{

change(&ranking[n],&ranking[n+1]);//학번을 바꿔줌으로써 몇번이 몇등인지 알수있다.
}
}
}
//└-------------------------------------------------------------------------┘

//┌----rankptr로 rank 배열을 가리키게함------------┐
for(n=0;n5;n++)
{
rankingptr[n] = ranking[n];//rank 의 주소를 rankptr이 갖음
}//rankingptr이 ranking배열의 주소걋?주소값을 갖게하려고 했습니다.틀렸으면 고쳐주세요..

//└----------------------------------------------------------------┘

}//END rankingNptr(int a[])/*★*/
// 한 배열속의 2개의 요소의 위치를 바꾸는 함수
void change(int * const a, int * const b){
int temp;
temp=*a;
*a=*b;
*b=temp;
}// END change(int a[n],int a[n+1])/*★*/
//중간 기말의 합을 지정한 배열에 배정하는 함수
void sum(int * const m_grad, int * const l_grad, int n, int * const set_sum)//중간고사배열,기말고사배열,요소의 개수,합 배정할 배열명
{
int x;
//int *m,*l;
for(x=0 ; xn ; x++)
{
set_sum[x]= m_grad[x] + l_grad[x];
}// sum 배열에 중간,기말의 합을 배정함

}/*★*/
//번호순대로 성적을 출력 시키는 함수
void print_a(int * const g_sum){

int n;
cout번호순으로 성적을 출력.endl;
for(n=0;n5;n++)
{
coutn+1번. g_sum[n]점endl;
}
}// END print_a()/*★*/
//번호순대로 성적을 출력 시키는 함수
void print_b(int * const ranking){

int n;

cout성적순으로 학번을 출력.endl;
for(n=0;n5;n++)
{
coutn+1등. ranking[n]번endl;
}
}// END print_b()
//번호순대로 성적을 출력 시키는 함수

/*print_c :재배열된 rank 의 주소값을 갖는 포인터배열rankptr에서 값들(2,4,5,1,3)을 조건문(if)를이용해서 (1,2,3,4,5)로 나열시킨뒤 이 값을 차례로 sum[n]배열의 n에 대입해(sum함수가아닙니다) sum값을 얻어낸다.그후 그값들을 출력한다. 결국 순차대로 sum을 출력한다.*/

void print_c(int * const s_rankingptr,int * const s_sum){
int x, n, a[5];
for(x=0;x5;x++){
for(n=0;n5;n++){
if(s_rankingptr[n]s_rankingptr[n+1])/*포인터배열인 rankptr이 갖고있는 값을 비교하려고합니다. 혹시 *를 붙여서써야되나요?*/
{change(&s_rankingptr[n],&s_rankingptr[n+1]);}
}
}
for(n=0;n5;n++){
a[n]=(s_rankingptr[n]-1);
coutn+1번.s_sum[a[n]]점endl;
}
}

//━━━━━━━━━━━━━━main함수시작━━━━━━━━━━━━━━━━━━━━━//int main()//메인 함수 함수 입력 순서.
{

int m_grad[5]={10,40,20,50,30};//중간고사 성적 저장할 배열
int l_grad[5]={40,70,10,20,30};//기만고사 성적 저장할 배열

int rank[5]={1,2,3,4,5};
int *rankptr[5];
int get_sum[5];//{50,110,30,70,60}

//┏print_a┓
sum(m_grad, l_grad, 5, get_sum);//중간,기말의 합을 구한뒤
print_a(get_sum);//그합을 학번대로 출력한다.(1번. 50점,2번. 110점...)

//┏print_b┓
rankingNptr(get_sum,rank,* rankptr );// 합,번호,번호의 주소를 가리키는 포인터 배열
print_b(rank);

//┏print_c┓
print_c(*rankptr,get_sum);//int * const s_rankingptr,int * const s_grad
return 0;
}

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

번호 제 목 글쓴이 날짜
2701151 사이트작업시 inputbox 가 readonly 형태표시 어떻게 하시나요? (1) 찬내 2025-07-11
2701123 간단한 select 질문입니다 (3) 천사의눈물 2025-07-11
2701061 비베질문.. 똘끼 2025-07-10
2701034 메일폼 내 script 삽입가능한 방법 없을까요.. (2) 마음새 2025-07-10
2701008 분명히 버튼을 만들었는데 액션이 안걸립니다. (3) 재찬 2025-07-10
2700923 전체중앙정렬&독타입&쿼크모드 ㅜㅠ (8) 푸른들 2025-07-09
2700893 질문드리겠습니다. 도도한 2025-07-09
2700793 무비클립에 마우스 오버시 랜덤으로 효과음 나기는 어떻게 ;; (1) 바닐라 2025-07-08
2700741 웹전송? (2) 연와인 2025-07-07
2700686 카테고리 호버시 세부카테고리 보이게하는 것, css로만 가능할까요?? (3) 다힘 2025-07-07
2700658 메타태그 질문드립니다..ㅠㅠ;;; 모해 2025-07-07
2700632 외부에서 이미지 파일을 불러와야 합니다. 도와주세요. (4) 에일린 2025-07-06
2700579 (air + as3) smtp 이용해서 첨부파일 포함해서 메일 보내기 물보라 2025-07-06
2700524 클릭시 밑에 메뉴 나오게 (4) 새솔 2025-07-05
2700505 activex를 비쥬얼6.0으로 만들었는데요 비스타 배포시에 안되서 질문드립니다 (3) 참이 2025-07-05
2700452 c언어에서... 자료형 구분.... (3) 시내 2025-07-05
2700422 버전에 관해 질문 라온제나 2025-07-04
2700393 mysql이 갑자기!!!!!!!!!!!!!!!에러가;; (2) 소미 2025-07-04
2700359 3.0 ) SimpleButton 상태 강제 변경 (3) 희선 2025-07-04
2700304 ie8 전용핵 문의 (3) 여자 2025-07-03
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com