Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    residenza
    Milano
    Messaggi
    7

    Programmini semplici che non riesco a risolvere in c++

    Salve ho difficoltà a risolvere i seguenti problemi in c++:

    1) Data una sequenza di numeri determinare il minimo e il numero immediatamente superiore:
    io ho fatto così ma dice che il minimo e vice minimo sono entrambi 0
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    
    
    
    main() {
        
    int n,min,vmin,app;
    
    
     
     do{
         printf("Inserisci un numero intero, 0 per terminare: ");
         scanf("%d",&n);
     if(n<min)
     {
     min=n;
     app=min;
     }
     else
     vmin=app;
     
     }while(n!=0);
        
        
        printf("Il minimo e' %d il viceminimo e' %d",min,vmin);
        
    system("PAUSE");
    }
    Il secondo è: Dato n stampare numeri sequenza di fibonacci minori di n:
    e l'ho fatto così ma non so come andare avanti:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    
    main()
    {
        
    int n,i;
    
    
    do{
    
    
         printf("Inserisci un numero intero positivo: ");
         scanf("%d",&n);
         
          }while(n<0);
         
    for(i=0;i<n;i++)
    {
    printf("%d\n",i);
    }
        
        
        
    
    
        system("PAUSE");
    }

    Grazie per il tempo e il vostro aiuto
    Ultima modifica di MItaly; 13-07-2014 a 22:38 Motivo: tag CODE

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Inserisci i tag CODE per il codice ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Ciao, nel primo c'è un problema evidente: all'interno del do-while devi anche controllare che n non sia zero. Infatti se l'utente inserisce zero cosa succede? La condizione nel while impedisce che venga effettuato un altro passaggio, ma quello che stai facendo ormai viene completato. Quindi aggiungi la condizione n != 0.
    Inoltre rivedi la logica: la variabile app è inutile e inoltre min e vmin devono essere inizializzati (ad un valore grande), altrimenti la condizione if(n < min) non ha senso.


  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2014
    residenza
    Milano
    Messaggi
    7
    Grazie

  5. #5

    Moderazione

    1 problema = 1 thread, altrimenti non si capisce niente. Qui discutiamo del primo problema, per il secondo eventualmente apri un altro thread.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551
    Ciao , dovresti calcolare la differenza tra numero superiore inserito e numero più piccolo , per sapere se ha lo scostamento minimo , cioè se è immediatamente superiore , tenendo presente che se inserisci un numero più piccolo , quello immediatamente superiore sarà il numero più piccolo attuale .
    Esempio , numero più piccolo 7 , numero immediatamente superiore 12 , nuovo numero più piccolo 4 , 7 il numero immediatamente superiore.
    Tecnologia

  7. #7
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Riassumento quello che abbiamo detto, potresti organizzare il codice come segue:

    codice:
        do
        {
            ...
    
            if(n != 0)
            {
                if(n<min)
                {
                     ...
                }
                else if(n < vmin)
                {
                     ...
                }
            }
        }
        while(n!=0);


Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.