수다닷컴

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

랜덤함수 석차

갤투

2023.04.01


질문 제목 : 랜덤함수의 석차랜덤함수의 석차를 구하는데요. 동점자 처리의 관한 질문입니다.질문 내용 : 랜덤함수의 석차를 구햇는데요. 문제는 동점자에 관한 질문입니다.
만약 동점자가 발생하게 되서 2등이 두명이 되면,
점수 석차
50 1
40 2
40 2
30 4
이런식으로 만들려고 하는데요.
제가만든 것은
점수 석차
50 1
403
403
30 4
이런식으로 출력됩니다.
어떤식으로 고쳐야하는지 알려주세요
#include stdio.h
#include stdlib.h
#include time.h
void main(void)
{
int arr[10][7]={0};
int i, j, k=1, max, min;
int max1, min1, max2, min2;
int sum[10]={0};
int avg[10]={0};
int rank[10];
for(i=0; i10; i++)
rank[i]=1;
srand((unsigned)time(null));//난수 초기값
for(i=0; i10; i++)//
{
for(j=0; j7; j++)
{
if(j==0)
{
arr[i][0]=k;
k++;//학번
}
else if(j==4)
{
sum[i] = arr[i][1]+arr[i][2]+arr[i][3];
arr[i][4]=sum[i];//총합
}
else if(j==5)
{
avg[i] = sum[i]/3;
arr[i][5] = avg[i];//평균
}
/* else if(j==6)
{
if(arr[i][5] arr[j][5])
{
rank[i]++;
arr[i][6] = rank[i];
}
} */
else if(j==1 || j==2 || j==3)
arr[i][j]=rand()%101;//시험점수 저장값
}
}
for(i=0; i10; i++)
{
for(j=0; j10; j++)
{
if(arr[i][5] = arr[j][5])
{
arr[i][6] = rank[i];
rank[i]+=1;//석차
}
}
}

printf(| 학번 | 시험 #1 | 시험 #2 | 시험 #3 |&| 총점 l 평균 l 석차 l\n);
for(i=0; i10; i++)
{
for(j=0; j7; j++)
{
printf( %3d , arr[i][j]);
}
printf(\n);
}//시험점수 출력값max=arr[0][1];
min=arr[0][1];
max1=arr[0][2];
min1=arr[0][2];
max2=arr[0][3];
min2=arr[0][3];
for(i=0; i10; i++) // 1번째 시험 최저, 최대
{
if(arr[i][1]max)
max=arr[i][1];
else if(arr[i][1]min)
min=arr[i][1];
}
for(i=0; i10; i++) // 2번째 시험 최저, 최대
{
if(arr[i][2]max1)
max1=arr[i][2];
else if(arr[i][2]min1)
min1=arr[i][2];
}
for(i=0; i10; i++) // 3번째 시험 최저, 최대
{
if(arr[i][3]max2)
max2=arr[i][3];
else if(arr[i][3]min2)
min2=arr[i][3];
}

printf( 최대 : %3d %3d %d\n 최소 : %3d %3d %d\n, max, max1,max2,min,min1,min2);

}

신청하기





COMMENT

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

  • 뽀그리

    rank를 따로 설정하고 arr[i][6]에 다시 석차를 넣는 이유를 잘 모르겠는데 하여튼

    for(i=0;i10;i++)
    { arr[i][6] = 0;
    for(j=0;j10;j++)
    if ( arr[i][5]=arr[j][5] ) arr[i][6] ++;
    }
    이렇게 하시면 될꺼 같아요. 여기 다른 분이 저렇게 깔끔하게 석차처리 하시더라구요. 전 되게 지저분하게 했었는데 감탄했습니다.

번호 제 목 글쓴이 날짜
2700287 구조체 동적할당 연습을 하는데 오류가 뜹니다...(해결) (3) 아련나래 2025-07-03
2700264 문자와 숫자 동시에 입력??? 글고운 2025-07-03
2700236 txt파일로만 쓰고 읽게 하려면 어떻게 해야 하나요..?? (8) 미국녀 2025-07-03
2700211 전위 연산자 (2) 어른처럼 2025-07-02
2700183 C에서 파일이름을 받고, 그 파일의 사이즈를 출력해줘야하는데 내용이 출력이 안되네요 ;ㅅ; 피스케스 2025-07-02
2700150 꼭좀 도와주세요ㅠㅠㅠ 호습다 2025-07-02
2700095 연산문제...질문... 오빤테앵겨 2025-07-01
2700070 while문 , 3의배수 출력하는 프로그램좀 짜주세욤. 횃불 2025-07-01
2700041 초보인데요 ㅎ 배열안에 배열을 집어넣을수 있나요?? 헛장사 2025-07-01
2700012 배열// (1) 전갈자리 2025-07-01
2699895 무한루프에 빠집니다.!! 해결좀부탁드려요 (10) 선아 2025-06-30
2699842 질문을 너무 많이 하네여.....죄송.... (2) 해님꽃 2025-06-29
2699816 오류 질문입니다.. (1) 해비치 2025-06-29
2699763 질문입니다 ! 꼭 좀 도와주세요ㅠㅠ (2) 미라 2025-06-28
2699555 c언어 다항식을 입력을 했는데 왜 출력이 안될까요? 피스케스 2025-06-27
2699528 C언어 포인터연산 질문입니다. (3) 안녕나야 2025-06-26
2699476 끌어올림;;달력 짜봤는데요 이 소스 줄일 수 있나요? - 스샷첨부 (2) 클라우드 2025-06-26
2699444 [좀 급함] system("explorer [주소] ") 문에 변수를 사용할 수 있나요? 알 2025-06-26
2699415 파일//read//와 배열 아란 2025-06-25
2699386 구조체 안에 일부분만 char 배열에 복사하려면 어떻게 해야하나요? (1) 미즈 2025-06-25
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

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