#include<stdio.h>
void swap(double*x,double*y)
{
double temp;
temp=*x;
*x=*y;
*y=temp;
}
void swaps(char*a,char*b)
{
char tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
int main(void)
{
double score[100];
char name[101][100],back2;
int i,j,k,p,m,n,o;
back2:
printf("인원수를 입력해주세요\n인원 : ");
fflush(stdin);
scanf("%d",&k);
for(i=0;i<k;i++)
{
printf("학생이름을 입력해주세요.\n이름 : ");
scanf("%s", &name[i]) ;
printf("%s학생의 물리점수를 입력해주세요.\n점수 : ", name[i]);
scanf("%lf", &score[i]);
}
for(j=0;j<k;j++)
{
for(p=j+1;p<k;p++)
{
if(score[j]<score[p])
swap(&score[j],&score[p]);
for(m=0;m<100;m++)
{
for(n=0;n<100;n++)
{
o=n+1;
swaps(&name[m][n],&name[o]
}
}
}
}
for(i=0;i<k;i++)
{
printf("%s의 물리점수 : ",name[i]);
printf("%lf\n",score[i]);
}
goto back2;
return 0;
}
학생들의 이름과 점수를 입력하면 점수순위대로 나열하는 프로그램을 짜고 싶은데, 점수는 나열이 되는데 그 점수에 맞는 이름이 뜨질 않고 사과모양 에러가 뜹니다.ㅜㅠ
도움은 다른 회원님들에게 부탁해야 할 것 같습니다.
코딩 도장 관리자는 심사와 관련해서만 답변을 하고 있습니다. 심사 자체에 오류가 있는지, 없는지에 대해 도움을 드리고 있습니다.
문의한 내용은 <C 언어 코딩 도장>을 차례대로 학습하면 내용을 확실하게 이해하고 할 수 있습니다. 대부분은 연습문제와 심사문제를 통해 제시하고 있습니다.
Unit 63, 73을 참고하세요.
"학생 점수 입력"으로 검색하면 비슷한 내용을 찾아볼 수 있습니다.