C언어 문제/함수 활용
[rand] 100 개의 데이터를 임의로 생성하여 정렬하시오.
자연&사람
2019. 11. 6. 21:55
반응형
문제).
0 ~ 100의 점수를 임의로 100개 생성하여 이를 내림차순으로 정렬하고, 1 ~ 10등은 'A', 11 ~ 25등은 'B', 26~50등은 'C', 51 ~ 80등은 'D', 81등 이후는 'F'를 등급을 주시오.
출력결과 예시)
[ 1등 A학점, 기술점수 100점] [ 2등 A학점, 기술점수 99점] [ 3등 A학점, 기술점수 98점] [ 4등 A학점, 기술점수 98점]
[ 5등 A학점, 기술점수 97점] [ 6등 A학점, 기술점수 97점] [ 7등 A학점, 기술점수 96점] [ 8등 A학점, 기술점수 96점]
[ 9등 A학점, 기술점수 96점] [ 10등 A학점, 기술점수 95점] [ 11등 B학점, 기술점수 94점] [ 12등 B학점, 기술점수 92점]
[ 13등 B학점, 기술점수 92점] [ 14등 B학점, 기술점수 90점] [ 15등 B학점, 기술점수 89점] [ 16등 B학점, 기술점수 85점]
......
[ 81등 F학점, 기술점수 21점] [ 82등 F학점, 기술점수 20점] [ 83등 F학점, 기술점수 19점] [ 84등 F학점, 기술점수 18점]
[ 85등 F학점, 기술점수 16점] [ 86등 F학점, 기술점수 15점] [ 87등 F학점, 기술점수 13점] [ 88등 F학점, 기술점수 11점]
[ 89등 F학점, 기술점수 10점] [ 90등 F학점, 기술점수 8점] [ 91등 F학점, 기술점수 7점] [ 92등 F학점, 기술점수 7점]
[ 93등 F학점, 기술점수 6점] [ 94등 F학점, 기술점수 5점] [ 95등 F학점, 기술점수 4점] [ 96등 F학점, 기술점수 3점]
[ 97등 F학점, 기술점수 3점] [ 98등 F학점, 기술점수 3점] [ 99등 F학점, 기술점수 2점] [100등 F학점, 기술점수 2점]
답은 아래에... ↓
스스로 풀어보시고... ↓
아래 답과 비교해보세요. ↓
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void sort(int *x);
void scoring(char *x);
int main(void)
{
int i;
int score[100];
char rank [100];
srand(time(NULL));
for (i = 0; i < 100; i++)
{
*(score + i) = rand() % 101;
}
sort(score);
scoring(rank);
for (i = 0; i < 100; i++)
{
printf("[%3d등 %c학점, 기술점수 %3d점] ", i + 1, rank[i], score[i]);
if((i + 1) % 4 == 0) {
printf("\n");
}
}
return 0;
}
void sort(int *x)
{
int temp;
int i, j;
for(i = 0; i < 99; i++)
{
for(j = i + 1; j < 100; j++)
{
if(x[i] < x[j])
{
temp = x[i];;
x[i] = x[j];
x[j] = temp;
}
}
}
}
//등수대로 학점을 주는 함수
void scoring(char *x)
{
int i;
for (i = 0; i < 100; i++)
{
if (i < 10)
{
x[i] = 'A';
}
else if (i < 25)
{
x[i] = 'B';
}
else if (i < 50)
{
x[i] = 'C';
}
else if (i < 80)
{
x[i] = 'D';
}
else
{
x[i] = 'F';
}
}
}
반응형