Programma C

di il
2 risposte

Programma C

Salve, approfitto della vostra disponibilità per porvi un problema che ho trovato in un programma. Il programma in questione mi chiede di:

-Utilizzare un vettore unidimensionale per leggere 20 numeri che devono essere compresi tra 10 e 100, estremi inclusi.

-Ogni volta che leggo un numero deve essere visualizzato solo se non è un duplicato di uno già letto.

Ecco, sulla prima parte non ho problemi, o almeno ai fini del risultato non ne ho seppur penso che il procedimento sia un po' troppo contorto.

#include <stdio.h>
#include <stdlib.h>
#define SIZE 20

main() 
{
       
int v[SIZE], i, x;
printf("Digita venti valori compresi tra 10 e 100: ");
printf("\n");
for (i=0; i<=SIZE-1; i++) {
    printf("\nNumero%d ", i+1); 
    scanf("%d", &x);
    if(x>=10 && x<=100)
    v[i]=x;
    else
        printf("Numero non valido", i--);
    
}


Avevo pensato ad una cosa del genere, anche se non so, c'è qualche altro modo un po' più 'raffinato'? Come potrei renderlo migliore? ...sulla seconda parte invece ho provato con alcuni tentativi ma non sono giunto ad una soluzione. Sono un po' alle prime armi, più che altro a livello 'pratico'. Grazie in anticipo.

2 Risposte

  • Re: Programma C

    Prova sto esempio
    
    #include <stdio.h>
    #include <stdlib.h>
    #define SIZE 20
    
    
    int esiste(int v[], int size, int x);
    
    int main()
    {
    	int v[SIZE], i, x;
    	printf("Digita venti valori compresi tra 10 e 100: ");
    	printf("\n");
    	for (i=0; i<=SIZE-1; i++) 
    	{
    		printf("\nNumero%d ", i+1);
    		scanf(" %d", &x);
    		if(x>=10 && x<=100)
    		{
    			if(esiste(v,i,x) == 0)
    			{
    				v[i]=x;
    				printf("%d ",v[i]);
    			}
    		}
    		else
    			printf("Numero non valido", i--);
    	}
    }
    int esiste(int v[], int size, int x)
    {
    	int i = 0;
    	for(i = 0; i < size; i++)
    		if(v[i] == x)
    			return 1;
    	return 0;
    }
    
    La funzione esiste ritorna 1 se trova il numero nel vettore altrimenti 0.
  • Re: Programma C

    Grazie mille, funziona.
Devi accedere o registrarti per scrivere nel forum
2 risposte