hihicoding
12
2021-11-24 16:43:41
3
160

C언어 문제2



#include <stdio.h>
#include <string.h>
#define QUERY_ADD_NAME "추가할 상품명을 입력하세요: "
#define QUERY_ADD_PRICE "추가할 상품의 가격을 입력하세요: "
#define QUERY_ADD_CNT "상품의 재고를 입력하세요: "

#define QUERY_ORDER_NAME "주문할 상품을 입력하세요: "
#define QUERY_ORDER_CNT "주문할 수량을 입력하세요: "

#define ERR_NOT_ENOUGH "주문하신 상품의 재고가 충분하지 않습니다.\n"
#define ERR_NO_ENTRY "주문하신 상품이 존재하지 않습니다.\n"
#define MAX 100

typedef struct product{
  char name[100];
  int price;
  int count;
}product;

void add_product(product *p,int *idx);
void print_product(const product *p,const int *idx);
void order_product(product *p, const int *idx);

int main(void) {
  product p[5];
  int idx =0;
  add_product(p, &idx);
  print_product(p,&idx);
  order_product(p,&idx);
  return 0;
}

void add_product(product *p,int *idx){
  for(int i=0;i<5;i++){
    printf("%s",QUERY_ADD_NAME);
    char name[MAX];
    scanf("%[^\n]s", name);
    while(getchar() !='\n')
    if(!strcmp(name,".")) return; //종료하겠다
    strcpy(p[*idx].name,name);
    printf("%s",QUERY_ADD_PRICE);
    scanf("%d",&p[*idx].price);
    while(getchar() !='\n')
    printf("%s",QUERY_ADD_CNT);
    scanf("%d",&p[*idx].count);
    while(getchar() !='\n')
    (*idx)++;
  }
}

void print_product(const product *p,const int *idx){
  for(int i=0;i<*idx;i++){
    printf("[%s %d원, 재고 %d]\n",p[i].name,p[i].price,p[i].count);
  }
}

int find_order(product *p,const int *idx){
  printf("%s",QUERY_ORDER_NAME);
  char name[MAX];
  scanf("%[^\n]s",name);
  while(getchar() != '\n');

  for(int i=0;i<*idx;i++){
    if(!strcmp(p[i].name,name)) return i;
  }
  return -1;
}

void order_product(product *p,const int *idx){
  int i = find_order(p,idx);
  if(i < 0){
    printf("%s",ERR_NO_ENTRY);
    // 주문 종료
  } else{
    printf("%s",QUERY_ORDER_CNT);
    int cnt;
    scanf("%d",&cnt);
    while(getchar()!= '\n');
    if(p[i].count<cnt){
      printf("%s",ERR_NOT_ENOUGH);
      //주문 종료
    } else{
      p[i].count -= cnt;
      printf("[계산서: %s %d원, 재고: %d]\n",p[i].name,p[i].price,p[i].count);
    }
  }
}

왜 제대로 작동안하는지 도와주세요ㅠㅠ

-4
0
  • 답변 3

  • defult
    14k
    2021-11-24 17:19:58

    왜 제대로 작동안하는지 알기위해서 각 변수 선언 및 변수 대입으로인한 값 변경 구간에 출력문이라도 넣어서 변수값 변화가 자신이 원하는 방향으로 흘러는 가는지 확인해보시고

    (IDE쓰는 중이라면 브레이크 포인트 걸고 변수 값 할당 확인하면 될일)

    그리고 안되는 부분은 어디인지 어떠한 에러가 나오고 있는지 스스로 뭘 해봤다는 것은 보여주셔야죠


    온라인 커뮤니티상의 다른 사람들은 대신 디버그, 컴파일 해주는 사람 아닙니다

  • hihicoding
    12
    2021-11-24 17:20:10

    왜 반대표가 쌓이는 건가요..?

  • kimdongy1000
    400
    2021-11-24 17:22:49

    오키는 인공지능이 아닙니다 그냥 코드 올려서 퀴즈형식으로 해결해줘 라고 하면 


    누가해주나요 최소한 내가 여기까진 해봤는데 하는 무언가가 없어서 아닐까요 


    마치 네이버 지식인에 과제 내용올리고 내공 팍팍 줄테니 만들어주세요 하는거와 다를빠가 없어서 


    그런거인지도 ...


    네이버는 내공이라도 먹지 여긴 뭘 먹나요 ... 

  • 로그인을 하시면 답변을 등록할 수 있습니다.