W 개발 일지

618 : 구조체 - 자가진단6 본문

C/정올 문제풀이

618 : 구조체 - 자가진단6

waVwe 2020. 11. 10. 00:07
반응형

C

#include<stdio.h>
#include<string.h>
 
typedef struct{
    char name[20];
    int height;
    double weight;
}info;
 
main(){
    info a[5];
    
    int i,j;
    
    for(i=0;i<5;i++){
        scanf("%s%d%lf",a[i].name,&a[i].height,&a[i].weight);
    }
    
    for(i=0;i<5;i++){
        for(j=0;j<4;j++){
            if(strcmp(a[j].name,a[j+1].name)>0){
                info tmp=a[j];
                a[j]=a[j+1];
                a[j+1]=tmp;
            }
        }
    }
    
    printf("name\n");
    
    for(i=0;i<5;i++){
        printf("%s %d %.1lf\n",a[i].name,a[i].height,a[i].weight);
    }
    
    for(i=0;i<5;i++){
        for(j=0;j<4;j++){
            if(a[j].weight<a[j+1].weight){
                info tmp=a[j];
                a[j]=a[j+1];
                a[j+1]=tmp;
            }
        }
    }
    
    printf("\nweight\n");
    
    for(i=0;i<5;i++){
        printf("%s %d %.1lf\n",a[i].name,a[i].height,a[i].weight);
    }
}
cs

 

버블 정렬과 strcmp를 이용해서 풀이.

 

<string.h> 헤더 파일을 이용해 strcmp(문자열1,문자열2) 함수를 이용하면 두 문자열을 비교할 수 있는데

ASCII코드 기준

문자열1이 클 때 1을 반환

두 문자열이 같을 때 0 반환

문자열 2가 클 때 -1을 반환한다.

 

 

 

 

출처 : www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=255&sca=10g0

반응형

'C > 정올 문제풀이' 카테고리의 다른 글

197 : 구조체 - 형성평가3  (0) 2020.11.11
196 : 구조체 - 형성평가2  (0) 2020.11.11
617 : 구조체 - 자가진단5  (0) 2020.11.09
616 : 구조체 - 자가진단4  (0) 2020.11.09
615 : 구조체 - 자가진단3  (0) 2020.11.09