[대체] 구조체배열

2011. 2. 18. 01:31 from PROGRAMMING/C

/*8구조체배열.c

*/
#include<stdio.h>
#include"Sungjuk.h"
typedef struct Sungjuk score;//구조체 이름 변경(꼭할필요는 없으나 작업이 편리해짐)
int main()
{
    int i,j;
    score p[5]=
    {
        {110833,"홍길동",87,88},
        {110837,"강길동",90,88},
        {110855,"주길동",67,88},
        {110824,"살  동",87,100},
        {110814,"박길동",100,100}
    };//구조체변수 p선언(멤버변수의 순서대로)
    //printf("p의 byte수 : %d\n",sizeof(p));
    for(i=0;i<5;i++)
    {
        p[i].tot=p[i].kor+p[i].eng;
        p[i].ave=p[i].tot/2.0;
        switch((int)p[i].ave/10)
        {
            case 10:
            case 9:p[i].grade='A';break;
            case 8:p[i].grade='B';break;
            case 7:p[i].grade='C';break;
            case 6:p[i].grade='D';break;
            default:p[i].grade='F';
         }
    }
   //등수구하기
    for(i=0;i<5;i++)
    {
        p[i].rank=1;
        for(j=0;j<5;j++)
        {
            if(p[i].tot < p[j].tot) p[i].rank++;
        }
    }
    printf("번호\t이름\t국어\t영어\t총점\t평균\t평가\t등수\n");
    for(i=0;i<5;i++)
    {
         printf("%d\t%s\t%3d\t%3d\t%4d\t%5.1f\t%3c\t%2d\n",p[i].no,p[i].name,p[i].kor,p[i].eng,p[i].tot,p[i].ave,p[i].grade,p[i].rank);//구조체변수.멤버변수
    }


    return 0;
}



/*9판매.c
#1)
    코드? a
    수량? 10
#1)
...
-----------------------*판매보고서*----------------
코드  제품명  수량  단가  판매금액  판매순위
 X
 코드가  a(A)면 제품명이 지우개, 단가 700
 코드가  b(B)면 제품명이 도화지, 단가 500
 코드가  c(C)면 제품명이 샤  프, 단가 3900
 코드가  d(D)면 제품명이 노  트, 단가 2500
 그외의 코드면 제품명이 크래파스, 단가 7800
 금액=수량*단가, 순위는 금액으로 구함
 비고 판매수량이 20개 이상이면 양호 그렇지않으면 ★출력
*/
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include"Panmae.h"
typedef struct Panmae pan;
int main()
{
    int i,j;
    pan p[5];
    for(i=0;i<5;i++)
    {
        printf("#%d)\n",i+1);
        printf(" 코드? ");
        //p[0].code=getchar();
        fflush(stdin);
        scanf("%c",&p[i].code);
        printf(" 수량? ");
        scanf("%d",&p[i].su);
        switch(tolower(p[i].code))
        {
            case 'a':strcpy(p[i].jepum,"지 우 개");p[i].dan=700;break;
            case 'b':strcpy(p[i].jepum,"도 화 지");p[i].dan=500;break;
            case 'c':strcpy(p[i].jepum,"샤    프");p[i].dan=3900;break;
            case 'd':strcpy(p[i].jepum,"노    트");p[i].dan=2500;break;
            default:strcpy(p[i].jepum,"크래파스");p[i].dan=7800;
        }
        p[i].kum=p[i].su*p[i].dan;
        if(p[i].su>=20)
        strcpy(p[i].bigo,"양호");
        else strcpy(p[i].bigo,"★");
    }
    //순위
    for(i=0;i<5;i++)
    {
        p[i].rank=1;
        for(j=0;j<5;j++)
        {
            //if(i==j) continue;
            if(p[i].kum < p[j].kum) p[i].rank++;
        }
    }
    printf("-----------------------*판매보고서*----------------\n");
    printf("코드\t제품명\t수량\t단가\t판매금액\t판매순위\t비고\n");
    for(i=0;i<5;i++)
    {
        printf("%c\t%s\t%d\t%d\t%d\t%d\t%s\n",p[i].code,p[i].jepum,p[i].su,p[i].dan,p[i].kum,p[i].rank,p[i].bigo);
    }

    return 0;
}

 

/판매보고서의 header파일 "Panmae.h"/

struct Panmae
{
    char code;
    char jepum[15];
    int su;
    int dan;
    int kum;
    int rank;
    char bigo[10];
};

'PROGRAMMING > C' 카테고리의 다른 글

[기초] 1. C언어 개요  (0) 2011.03.03
[대체] 성적표구조체배열(사용자함수)  (0) 2011.02.18
[대체] 13. 구조체  (0) 2011.02.18
[대체] 12. 포인터  (0) 2011.02.18
[대체] 사용자함수  (0) 2011.02.18
Posted by 마마필로 :