C언어 질문입니다

조회수 532회

양수가 입력되면 a리스트, b리스트로 각각 저장하는 프로그램 작성.

  • (조건1: 두 수의 합이 0이면, 전체 입력받은 정수들의 합계를 출력한다.)
  • (조건2: 0 이 입력되면 해당 정수 리스트의 합계를 출력한다.)
  • (조건3: -1 이 입력되면 해당 정수 리스트를 출력한다.)
  • (조건4: 두 수 중 하나라도 -1보다 작은수가 입력되면 프로그램을 종료한다.)

예시:

  • 예1) a는 -2이고, b는 2인 경우 : 전체 정수의 합계를 출력하고, a/b 모두 저장하지 않는다.
  • 예2) a는 양수이고, b는 0인 경우 : a는 저장하고, b리스트의 합계 출력한다.
  • 예3) a는 -1이고, b는 양수인 경우 : b는 저장하고, a리스트를 출력한다.

입력예시)
1 2 3 4 5 6 -1 7 8 9 -1 10 0 -1 1 -1 11 -4

출력예시)
a리스트(3) : 1 3 5
a리스트(4) : 1 3 5 8
a합계(4) : 17
b리스트(6) : 2 4 6 7 9 10
전체합계(10) : 55

#include <iostream>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {
   int nMax = 20;
   int nNow = 0;
   int* p = (int* )malloc(sizeof(int)* nMax); 
   int* k = (int* )malloc(sizeof(int)* nMax);
   int nSum, dSum;

   int a,b,c;
   while(1){
      printf("정수 2개 입력: ");
      scanf("%d %d", &a, &b); 

      if(a+b ==0){
         printf("전체합계(%d) : %d ",nNow ,nSum);
         continue;
      }

      if(a ==0){
         printf("a 합계(%d): ", nNow );
            printf("%d ", dSum);
         printf("\n");
         continue;
      }
      if(b==0){
         printf("b 합계(%d) :", nNow);
            printf("%d ", c);
         printf("\n");
         continue;
      }

      if(a == -1){
         printf("정수 리스트(%d) :", nNow);
            for(int n =0; n<nNow; n++)
               printf("%d ", p[n]);
         printf("\n");
         continue;
      }
      if(b == -1){
         printf("정수 리스트(%d) :", nNow);
            for(int n =0; n<nNow; n++)
               printf("%d ", k[n]);
         printf("\n");
         continue;
      }

      if(a <-1)
         break;
      if(b<-1)
         break;

      if(nNow >= nMax){
         nMax = nMax + 10;
         p = (int* )realloc(p, sizeof(int)* nMax); 
         k = (int* )realloc(k, sizeof(int)* nMax);
      }
      c += b;
      dSum += a;
      nSum == dSum;
      nSum += b;
      p[nNow] = a;
      k[nNow] = b;
      nNow++;
   }


   return 0;
}

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)