시시한 블로그

c언어예제 강의 - 휴대폰 기종에 따른 가격 출력하기

강의Q&A

c언어예제 강의 - 휴대폰 기종에 따른 가격 출력하기



질문


마지막 output함수에서 가격에서 오류가 납니다. 

typedef struct phone { char name[20]; int price; char phonenum[15]; }HP, *PTP; void inputkind(char *a); void inputprice(int a); void inputphonenum(char *a); void output(char *a, int b, char *c); #include void main() { HP phone1, phone2; HP *pta; PTP ptb; pta = &phone1; ptb = &phone2; inputkind((*pta).name); inputprice(pta->price); inputphonenum((*pta).phonenum); inputkind((*ptb).name); inputprice(ptb->price); inputphonenum((*ptb).phonenum); output((*pta).name, pta->price, (*pta).phonenum); output((*ptb).name, pta->price, (*ptb).phonenum); } void inputkind(char *a) 

{ printf("핸드폰 기종은 무엇입니까? :"); scanf("%s", a); } void inputprice(int a) 

{ printf("가격은 얼마입니까? :"); scanf_s("%d", &a); } void inputphonenum(char *a)

 { printf("번호는 무엇입니까? : "); scanf("%s", a); } void output(char *a, int b, char *c) 

{ printf("%s의 가격은 %d원이며 번호는 %s입니다.\n", a, b, c); } 


저번에 답변해주신게 틀린것같습니다. 다시한번 수정 부탁드리겠습니다. output에서 결과값 출력할 때 가격이란 값이 이상하게 나오네요.


-----------------------------


안녕하세요. 답변드립니다.


답변


#include <stdio.h>


typedef struct phone {

char name[20];

int price;

char phonenum[15];

}HP, *PTP;


void inputkind(char *a);

void inputprice(int *a);

void inputphonenum(char *a);

void output(char *a, int b, char *c);


void main() {

HP phone1, phone2;

HP *pta;

PTP ptb;

pta = &phone1;

ptb = &phone2;

inputkind( (*pta).name);

inputprice(&pta->price);

inputphonenum( (*pta).phonenum);

inputkind( (*ptb).name);

inputprice( &ptb->price);

inputphonenum( (*ptb).phonenum);

output( (*pta).name, pta->price, (*pta).phonenum);

output( (*ptb).name, ptb->price, (*ptb).phonenum);

}


void inputkind(char *a) {

printf("핸드폰 기종 : ");

scanf("%s", a);

}

void inputprice(int *a) {

printf("가격 : ");

scanf_s("%d", a);

}

void inputphonenum(char *a) {

printf("번호 : ");

scanf("%s", a);

}

void output(char *a, int b, char *c) {

printf("%s, %d, %s \n", a, b, c);

}