성적 총점을 석차로 내는 방법
연파랑
질문 제목 :
성적을 난수로 받아서 총점을 계산하여 석차를 내고 싶어요
배열을 써서 석차를 내려면 어떻게 해야할까요
질문 내용 :1~40명의 점수를 받아서 총점을 계산하여 석차를 내려고 하는데요. 석차가 총점순대로 나오지 않습니다. 그리고 총점순으로 정렬했을때 학번을 바꾸고 싶은데 어떻게 해야할지 모르겠어요.
40명의 성적은 무작위로 선정되구요 학번은 1에서 40까지로 각자 달라야합니다. 학번은 랜덤함수를 못쓰겠어요.
#include stdio.h
#include stdlib.h
#include time.h
#define STUDENTS 40
void total_sort(double total[], int n);
int main(void)
{
int number[STUDENTS];
int mid[STUDENTS];
int fin[STUDENTS];
int ass[STUDENTS];
int att[STUDENTS];
double total[STUDENTS]={0};
int rank[STUDENTS]; int i,j;
srand((unsigned)time(NULL));
for(i=0; iSTUDENTS; i++)
{
number[i]=rand()%40; //학번이 1에서 40까지 나오게 하고 싶습니다.(랜덤함수를 쓰면 학번이 겹쳐서
안되더군요. 예를들어 총점수순으로 정렬하면 학번이 모두 달라야합니다.
mid[i]=rand()%101;
fin[i]=rand()%101;
ass[i]=rand()%101;
att[i]=rand()%11;
total[i] = 0.3*mid[i] + 0.3*fin[i] + 0.3*ass[i] + att[i];
rank[i]=1; // 여기서부터 석차계산 석차가 총점순으로 나오지 않아요..ㅜㅜ
for(j=0; jSTUDENTS; j++)
{
if(total[j]total[i])
rank[i]++;
}
}
total_sort(total, STUDENTS); //총점내는 함수
printf(학번\t 중간\t 기말\t 과제\t 출석\t 총점\n);
printf(=======================================\n);
for(i=0; iSTUDENTS; i++)
{
printf(%d, numbe, number[i]);
printf(\t %3d \t %3d \t %3d \t %3d \t %5.1f %3d \n,mid[i],fin[i],ass[i],att[i],total[i],rank[i]);
printf(\n);
}
return 0;
}void total_sort(double total[], int n) //총점순으로 정렬하는 함수
{
int i,j, temp; for(i=0;in-1;i++)
{
for(j=0;j(n-1)-i;j++)
{
if(total[j]total[j+1])
{
temp=total[j];
total[j]=total[j+1];
total[j+1]=temp;
}
}
}
}
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2700510 | c언어를 어케하면 잘할수 있을까요.. | 연연두 | 2025-07-05 |
2700484 | 두 개가 차이가 뭔지 알려주세요...(소수 찾는 프로그램) (2) | 날위해 | 2025-07-05 |
2700426 | 인터넷 창 띄우는 질문이요 (1) | 정훈 | 2025-07-04 |
2700400 | 원넓이를 계산이요 ㅜㅜ | 천칭자리 | 2025-07-04 |
2700368 | if에 관해서 질문이요... | Orange | 2025-07-04 |
2700339 | 이거 결과값이 왜이런건지.. (4) | 그댸와나 | 2025-07-04 |
2700313 | 파일 읽어서 저장하는데 빈파일일 경우 문재가 발생하네요.. (2) | 크나 | 2025-07-03 |
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 |