편집 기록

편집 기록
  • 프로필 noah0508님의 편집
    날짜2021.12.01

    C언어 질문입니다


    양수가 입력되면 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;
    }
    
  • 프로필 알 수 없는 사용자님의 편집
    날짜2021.04.27

    C언어 질문입니다


    양수가 입력되면 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

    include

    /* 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; }