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;
}
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
댓글 입력