Когда функция суммы вызывается с тем же аргументом из основной функции, она работает нормально, но когда эта функция суммы вызывается из функции проверки, она начинает работать со сбоями ??
Функция проверки имеет вид:
void check(int sum1, int sum2, int sum3) {
int position;
while (!(sum1 == sum2 && sum2 == sum3)) {
position = sum_array(sum1, sum2, sum3);
switch(position) {
case 0 :
pop(stack1);
sum1 = sum(stack1);
break;
case 1 :
pop(stack2);
sum2 = sum(stack2);
break;
case 2 :
pop(stack3);
sum3 = sum(stack3);
break;
}
}
printf("%d is the height", sum1);
}
Функция суммы:
int sum(struct stack* stack) {
int temp_sum = 0;
struct stack *stack1;
stack1 = stack;
while (stack1 -> top != -1)
temp_sum = temp_sum + stack1 -> array[stack1 -> top --];
return temp_sum;
}
Основная функция:
int main(void) {
int n1, n2, n3, sum1, sum2, sum3;
scanf("%d %d %d",&n1, &n2, &n3);
stack1 = create_stack(n1);
input(stack1, n1);
// traverse(stack1);
sum1= sum(stack1);
printf("sum1 = %d",sum1);
stack2 = create_stack(n2);
input (stack2, n2);
sum2 = sum(stack2);
printf("sum2 = %d",sum2);
stack3 = create_stack(n3);
input (stack3, n3);
sum3 = sum(stack3);
printf("sum3 = %d",sum3);
check(sum1, sum2, sum3);
return 0;
}
Функция всплывающего окна:
void pop(struct stack* stack) {
stack -> top --;
printf("Poped\n");
}