Buongiorno, ho provato a creare il codice utilizzando di proposito l'array, e dopo vari tentativi sono riuscito a far partire il programma, il quale tuttavia non funziona e non capisco perchè.
1)Cosa ho sbagliato?
Di seguito testo del problema e relativo codice:
/*Si scriva un programma in linguaggio C per poter analizzare una sequenza di numeri.
Dati N numeri interi letti da tastiera si vogliono calcolare e stampare su schermo diversi
risultati:
quanti sono i numeri positivi, nulli e negativi
quanti sono i numeri pari e dispari.*/
#include <stdio.h>
#include <stdlib.h>
int quantita, i;
int positivi, negativi,nulli,pari,dispari;
int main (){
int positivi=0;
int negativi=0; //2 ERRORI IN QUESTA RIGA (solo se uso ciclo For)!?
int nulli=0;
int pari=0;
int dispari=0;
int i=0;//se uso while devo dichiararlo e inizializzarlo uguale a 0 ?
printf ("inserisci quanti numeri vuoi analizzare");
scanf ("%d", &quantita);
int vett[quantita];
while (i>=0 && i<quantita){ //1 ERRORE IN QUESTA RIGA (solo uso il ciclo FOR)!?
printf ("inserisci la sequenza da analizzare\n");//qui si riempie l'array
scanf ("%d", &vett[i]);
i++;
}
while (i>=0 && i<quantita){
scanf ("%d", &vett[i]);
if (vett[i]>0){positivi++;}//uso "++"
else if (vett[i]<0){negativi=negativi+1;}//uso "+1"
else {nulli=nulli+1;}
i++;
}
printf ("positivi %d, negativi %d, nulli %d", positivi, negativi, nulli);
system ("pause");
return 0;
}// 5 ERRORI IN QUESTA RIGA(solo se uso il ciclo For)!?
2)Leggete i commenti dentro il codice: inizialmente mi sembrava logico usare il FOR tanto quanto il WHILE, eppure solo con quest'ultimo riesco a creare ed eseguire l' .exe, perchè ?
3)Un'altra domanda: quando uso "i" per un conteggio va dichiarata assieme alle altre "int" e va inizializzata a 0? Oppure è tutto automatico (come se "i" fosse una sorta di keyword)?
Grazie