Programma non funziona

di il
9 risposte

Programma non funziona

Ciao a tutti! Premetto che sono alle prime armi.
Sto programmando in c un programma che prenda in input 50 numeri e indichi il maggiore ed il minore tra i 50 e la rispettiva posizione del numero maggiore e minore.
Per trovare il maggiore e minore non ho avuto problemi, ma non so come farmi dire la posizione di questi. Ho pensato a mettere tutti i numeri di input in un vettore e poi verificare quale numero era in quale posizione..non so. Se qualcuno può aiutarmi ne sarei felice, grazie in anticipo!

9 Risposte

  • Re: Programma non funziona

    Se posti il codice per il minimo e massimo ti accorgi facilmente come trovare la posizione
  • Re: Programma non funziona

    oregon ha scritto:


    Se posti il codice per il minimo e massimo ti accorgi facilmente come trovare la posizione
    In realtà non so proprio. Ho pensato di fare un ciclo che mi leggesse tutti i valori nel vettore e si fermasse quando trova il valore che cerco. Potrei mettere una variabile (es i) che si incrementa di 1 ad ogni "volta". Quando la condizione sarà verificata allora il programma esce dal ciclo ed il valore di i sarà la mia posizione, no?
    Tipo (tralascio alcuni comandi)

    Int main(){
    Int i;
    Int num; //valore che cerco
    Int vettore[5];
    Int num2; //variabile dei 5 numeri del vettore

    (A questo punto un ciclo for facendomi dare i 5 numeri dall'utente che penso sia il seguente)

    for(i=0; i<5; i=i+1){
    scanf("%d", &vettore); }

    (Poi penso un altro for, poi metto un if con condizione num2=num e poi un printf di i?)

    Scusa non so se abbia senso..
  • Re: Programma non funziona

    Quando trovi il minimo o il massimo è proprio la variabile del ciclo che ti indica la posizione. È semplice, prova solo a trovare min e max
  • Re: Programma non funziona

    oregon ha scritto:


    Quando trovi il minimo o il massimo è proprio la variabile del ciclo che ti indica la posizione. È semplice, prova solo a trovare min e max
    Per trovare minimo e massimo ho pensato di fare cosi:
    #include <stdio.h>
    #include <stdlib.h>

    int vettore[20];
    int numero;
    int max;
    int min;
    int i;

    int main(){

    for(numero=0; numero<20; numero++){
    printf("Inserisci il %d numero. ", numero+1);
    scanf("%d", &vettore[numero]);
    if(numero==0){
    max=vettore[numero];}
    if(vettore[numero]>max){
    max=vettore[numero];}


    if(numero==0){
    min=vettore[numero];}
    if(vettore[numero]<min){
    min=vettore[numero];}
    }
    printf("\nIl numero massimo e\' %d ", max);
    printf("\nIl numero minimo e\' %d ", min);
    }

    E funziona, ma per trovare la posizione nel vettore proprio non so
  • Re: Programma non funziona

    Usa i tag CODE per il codice nel forum.

    Quando scrivi
    
    if(numero==0){
    max=vettore[numero];}
    
    perché lo ripeti per il minimo? Ti basta una if e la posizione la puoi memorizzare in due variabili quindi
    
    if(numero==0)
    {
       min=max=vettore[numero];
       pmin=pmax=numero;
    }
    
    Come devi fare negli altri casi? Fallo tu ...
  • Re: Programma non funziona

    Si scusa, sono un po' ignorante. Per l'if, lo ho fatto due volte per chiarezza visiva dato che mi ci sto scervellando. Comunque grazie, hai ragione.
    Comunque in che senso negli altri casi?
  • Re: Programma non funziona

    Per le altre if
  • Re: Programma non funziona

    
         	 for(numero=0; numero<20; numero++){
             printf("Inserisci il %d numero.  ", numero+1);
    		 scanf("%d", &vettore[numero]);
    		 if(numero==0){
    		 	max=min=vettore[numero];
    			 posmax=posmin=numero;}
    		 if(vettore[numero]>max){
    		 	max=vettore[numero];
    			 posmax=numero;}
    		 if(vettore[numero]<min){
    		 	min=vettore[numero];
    			 posmin=numero;}
    		 }
    			 printf("\nIl numero massimo e\' %d  ", max);
    			 printf("\nIl numero minimo e\' %d  ", min);
    			 printf("\nLa posizione del numero massimo e\' %d", posmax+1);
    			 printf("\nLa posizione del numero minimo e\' %d", posmin+1);
    				 }
    		}
    
    Così ha senso?
  • Re: Programma non funziona

    Lo hai provato?
Devi accedere o registrarti per scrivere nel forum
9 risposte