#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int *F1(int A, int *B){
int i;
int *C = (int *)malloc((A)*sizeof(int));
int k = F2(B, A);
for (i = 0; i < A; i++)
if (!(i % 2))
printf("\n C[%d]=%d", i, C[i] = k + (*B)++);
else
printf("\n C[%d]=%d", i, C[i] = k - *(B++));
return C;
}
int F2(int *A, int B){
int i;
for (i = 0; i < B; i++)
if ((A[i]>B))
A[i]++;
return ++(A[--i]);
}
main() {
int *VD = NULL;
int VS[4] = { 6, 3, 4, 1 };
VD = F1(*VS, VS + 2);
printf("\n A: %d B: %d", *VS, VD[*VS % 2]);
}
La A
nell'if di F2, come si comporta ?
Inizialmente ha il valore di A, ossia 4, che essendo > 2, poi viene incrementato e diventa A=5 .
Rientrando poi nuovamente nel for, perchè A diventa 1 e non appunto 5 ?