5명의 이름과 키, 몸무게를 입력받아 이름순으로 정렬하여 출력하고, 몸무게가 무거운 순으로 정렬하여 출력하는 프로그램을 작성하시오. 몸무게는 소수점이하 1자리까지 출력한다.
#include <stdio.h>
#include <stdlib.h>
struct person
{
char name[10];
int length;
double weight;
};
void wbubble(struct person *a)
{
int i,j;
struct person num;
for(i=0;i<4;i++)
{
for(j=0;j<4-i;j++)
{
if(a[j].weight<a[j+1].weight)
{ num=a[j+1];
a[j+1]=a[j];
a[j]=num;
}//if
}//forj
}//fori
}
void nbubble(struct person *a)
{
int i,j;
struct person num;
for(i=0;i<4;i++)
{
for(j=0;j<4-i;j++)
{
if(a[j].name>a[j+1].name)
{ num=a[j+1];
a[j+1]=a[j];
a[j]=num;
}//if
}//forj
}//fori
}
int main(void)
{
struct person a[5];
struct person temp;
int i;
printf("5명의 이름과 키, 몸무게를 입력하시오.\n");
for(i=0;i<5;i++)
scanf("%s %d %lf",a[i].name,&a[i].length,&a[i].weight);
nbubble(a);
printf("이름순\n");
for(i=0;i<5;i++)
printf("%s %d %.1f\n",a[i].name,a[i].length,a[i].weight);
wbubble(a);
printf("몸무게순\n");
for(i=0;i<5;i++)
printf("%s %d %.1f\n",a[i].name,a[i].length,a[i].weight);
system("pause");
return 0;
}