Ciao a tutti, sono alle prime armi con il C e specialmente con gli array. Ho un problema con questo esercizio di cui vi riporto la traccia con annessi input e output:
L'esercizio l'ho impostato così:
Non capisco dove e in cosa sbaglio. Grazie in anticipo.
Scrivere un programma che legga da tastiera 10 interi, li scriva in un array A, e lo passi ad una funzione verifica condizione. La funzione restituisce l’indice i del primo elemento che verifica la seguente condizione:
A = A[i + 1] − A[i − 1]
oppure -1 nel caso in cui nessun elemento verifichi la suddetta condizione. Il risultato della funzione viene stampato nella main.
Esempio:
Input Output
9 2
5
-2
3
5
50
4
-7
0
-7
L'esercizio l'ho impostato così:
C:
#include <stdio.h>
#define dim 10
int verifica_condizione (int a[], size_t n);
int main () {
int a[dim];
printf("Inserisci 10 interi. \n");
for (size_t i = 0; i < dim; i++) {
while(scanf("%d", &a[i]) != 1) {
printf("Input errato. Inserisci un intero.\n");
scanf("%*[^\n]%*c");
}
}
printf("%d \n", verifica_condizione(a,dim));
}
int verifica_condizione (int a[], size_t n) {
int indice = 0;
int b;
for (size_t y = 0; y < dim; y++) {
b = a[y+1] - a[y-1];
if (a[y] == b) {
indice = y;
} else {
indice = -1;
}
}
return indice;
}