Ciao,
ho sistemato il codice, solo che se inserisco zero il ciclo di inserimento non termina ma continua?
Mi potreste cortesemente dire se si tratta di un errore logico o di codice.
Ecco il pezzo di codice che deve svolgere il controllo sull'input:
codice:
printf("Inserisci una sequenza di numeri interi positivi (per terminare premi 'zero')\n");
while(num[i]!=0)
{
printf("\nInserisci il %d%c numero:", j, 167);
scanf("%d", &num[i]);
if(num[i]<0)
{
do
{
printf("Il numero inserito '%d' non e\' corretto perche\' e\' minore di zero\n", num[i]);
printf("Inserisci nuovamente il %d%c numero", j, 167);
scanf("%d", &num[i]);
}
while(num[i]<0);
}
i++;
j++;
}
Vi posto anche il codice completo per aver la visione completa di ciò che ho svolto fino ad ora:
codice:
#include<stdio.h>
int somma(int[]);
int sommap(int[], int, int);
int main()
{
int num[1000], i=0, j=1, op=0, k=0;
printf("Inserisci una sequenza di numeri interi positivi (per terminare premi 'zero')\n");
while(num[i]!=0)
{
printf("\nInserisci il %d%c numero:", j, 167);
scanf("%d", &num[i]);
if(num[i]<0)
{
do
{
printf("Il numero inserito '%d' non e\' corretto perche\' e\' minore di zero\n", num[i]);
printf("Inserisci nuovamente il %d%c numero", j, 167);
scanf("%d", &num[i]);
}
while(num[i]<0);
}
i++;
j++;
}
do
{
printf("Cosa vuoi vedere?\n\n");
printf(" 1) La somma dei numeri pari\n");
printf(" 2) La somma dei numeri dispari\n");
printf(" 3) La somma dei numeri in posizione pari\n");
printf(" 4) La somma dei numeri in posizione dispari\n");
printf("Scelta:");
scanf("%d", &op);
}
while(op!=1 && op!=2 && op!=3 && op!=4);
switch(op)
{
case 1:
printf("La somma dei numeri pari da come risultato: %d", somma(num));
break;
case 2:
printf("La somma dei numeri dispari da come risultato: %d", somma(num));
break;
case 3:
k=0;
printf("La somma dei numeri in posizione pari da come risultato: %d", sommap(num, k, i));
break;
default:
k=1;
printf("La somma dei numeri in posizione dispari da come risultato: %d", sommap(num, k, i));
}
system("pause");
return 0;
}
//Implementazione che conta i numeri in posizione pari o dispari
int sommap(int num1[], int pos, int tot)
{
int i, somma = 0;
for (i = pos; i < tot; i += 2)
somma += num1[i];
return somma;
}
//Implementazione della funzione che conta i numeri pari o dispari
int somma (int num2[])
{
//Ciao
//Qui non ho scritto niente poichè non sapevo come scrivere il codice per vedere se il numero era pari o dispari
}
Ciao e grazie