Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Visualizzazione minimo tra 30 numeri

    Salve ragazzi,

    potete aiutarmi a risolvere questo problema please?
    Ho scritto questo codice per la visualizzazione del minimo tra 30 numeri:

    codice:
    #include <stdio.h>
    main()
    
    {
        int conta,a,somma,min;
        conta = 0;
        scanf(a);
        min=a;
        do
        {
              printf("Inserisci un numero");
              scanf(a);
              if(a<min)
              min=a;
              conta=conta+1;
              }
              while(conta<30);
              printf(min);
      
      system("PAUSE");
    }
    che quando mando in esecuzione, invece di funzionare correttamente, mi fa inserire soltanto un numero la prima volta, poi mi chiede inserisci un numero tante volte, ma in realtà non me lo fa inserire. Perchè? Cosa ho sbagliato? HELPPP!!!
    Richard

  2. #2
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Probabilmente scanf non va usata proprio in quel modo.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  3. #3
    Ho provato a correggere il while che aveva due "=" e non mi da errori. Ora il programma si esegue ma non mi da la possibilità di digitare nulla. Uffaaa! :-(

    codice:
    #include <stdio.h>
    
    main()
    
    {     int conta,min,a;
          conta=0;
          min=0;
          while(conta<20);
          {
                          do
                          { 
                          printf("Inserisci un numero negativo");
                          scanf(a);
                          }
                          while (a>=0);
                          if(a<min)
                             min=a;
                             conta=conta+1;
          }
          printf(min);
          system("PAUSE");
    }
    Richard

  4. #4

  5. #5
    Evidentemente ho preso alla "lettera" degli esempi che non erano completi. Domani ho una prova in itinere all'uni, e quindi mi sto esercitando più che posso. In effetti ci ha insegnato di inserire il puntatore all'indirizzo della variabile all'interno della scanf, specificando anche il tipo di variabile "%d".
    Ora però ho provato un altro esempio. E sapete che mi succede? Mi chiede sempre di inserire un numero, all'infinito. Secondo voi dov'è l'errore? La prova è "Visualizzare il massimo di una sequenza chiusa dallo zero". Ecco il codice:

    codice:
     #include <stdio.h>
    
    main()
    {
          int a,max;
          scanf("%d",&a);
          max=a;
          if(a!=0)
            do
            {
               printf("Inserisci un numero");
               scanf("%d",&a);
               if(a>max && a!=0)
                  max=a;
            }  while(a!=0);
            else
            printf("Errore");
            printf(max);
    }
    Richard

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,305

    Moderazione

    Consiglio anche una lettura al regolamento di questa sezione:

    1) Il linguaggio va obbligatoriamente specificato nel titolo (ed eventualmente anche nella discussione)

    2) Il codice non va postato all'interno dei tag per il corsivo, ma all'interno dei tag per il codice (CODE o PHP).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    (x il moderatore)Recepito
    Richard

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    5

    Re: Visualizzazione minimo tra 30 numeri

    Originariamente inviato da richard_flyer
    Salve ragazzi,

    potete aiutarmi a risolvere questo problema please?
    Ho scritto questo codice per la visualizzazione del minimo tra 30 numeri:

    codice:
    #include <stdio.h>
    main()
    
    {
        int conta,a,somma,min;
        conta = 0;
        scanf(a);
        min=a;
        do
        {
              printf("Inserisci un numero");
              scanf(a);
              if(a<min)
              min=a;
              conta=conta+1;
              }
              while(conta<30);
              printf(min);
      
      system("PAUSE");
    }
    che quando mando in esecuzione, invece di funzionare correttamente, mi fa inserire soltanto un numero la prima volta, poi mi chiede inserisci un numero tante volte, ma in realtà non me lo fa inserire. Perchè? Cosa ho sbagliato? HELPPP!!!
    Lo scanf è errato infatti...

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    5
    Alla fine pensavo avessi ricevuto aiuto da qualcuno!
    Comunque ho pensato di costruirti questo programmino in C dove carichi 30 numeri e determini minore, media e maggiore, nonché la somma totale
    Ecco la sorgente:

    codice:
    #include <stdio.h>
    #define R 6
    #define C 5
     main () {
      int matt[R][C],i,j;
      int comando,cont,qta=R*C,k=0,totale=0,min,media=0,max=0;
       do { 
         system ("cls");
         printf ("---------------------------------------\n"
                 " [?] MENU PRINCIPALE\n"
                 "---------------------------------------\n");
                  if (k == 0) {
                     printf (" [1] CARICA VALORI\n"
                             " [2]\n"
                             " [3] ESCI\n");
                         }    
                  else {
                    printf (" [1] RICARICA VALORI\n"
                            " [2] VISUALIZZA VALORI\n"
                            " [3] ESCI\n");
                        } 
                 printf ("---------------------------------------\n"
                         " [?] INSERISCI COMANDO: "); 
                 scanf ("%d",&comando); 
                          switch (comando) {
                             case 1:
                               cont=1; k=1;
                                 for (i=0; i < R; i++)
                                    for (j=0; j < C; j++) {
                                        system("cls");
                                        printf ("---------------------------------------\n"
                                                " [1] CARICAMENTO %d VALORI NUMERICI\n"
                                                "---------------------------------------\n"
                                                " [%d/%d] CARICA VALORE NUMERICO: ",qta,cont,qta);
                                         scanf ("%d",&matt[i][j]);
                                           if (max < matt[i][j])
                                               max = matt[i][j]; 
                                             if (min > matt[i][j])
                                                 min = matt[i][j];
                                         totale += matt[i][j];
                                         cont++;
                                       }
                                 media = totale / (R*C);
                             break;
                             case 2:
                               if (k != 0) { 
                                 system ("cls");
                                  printf ("---------------------------------------\n"
                                           " [2] %d VALORI NUMERICI CARICATI\n"
                                           "---------------------------------------\n",qta);
                                            for (i=0; i < R; i++) {
                                               for (j=0; j < C; j++) {
                                                  printf ("%4d",matt[i][j]);
                                                  }
                                          printf ("\n");
                                         }
                               printf ("---------------------------------------\n"
                                       " MINIMO: %d | MEDIO: %d | MASSIMO: %d\n"
                                       "---------------------------------------\n"
                                       " -> TOTALE: %d",min,media,max,totale);
                                   }
                               else
                                   printf (" [X] CARICARE I VALORI");
                                   getch();    
                            break;
                            case 3:
                                  system ("cls");
                                  printf ("---------------------------------------\n"
                                          " [3] ESCI\n"
                                          "---------------------------------------\n"
                                          " Powered by Kikko90");
                            break;
                            default:
                                 printf (" [X] COMANDO NON VALIDO");
                                 getch();
                                  }       
          } while (comando != 3); 
      getch();
    }
    So già di essere non molto ordinato, lo ammetto!
    Comunque credo così lo volevi, poi non so, nel caso te lo personalizzi a tuo piacimento (la quantità dei valori puoi modificarli dalle define (5x6 = 30 valori)!
    Ti auguro buona giornata!

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    146
    Ecco il tuo codice corretto e funzionante

    codice:
    #include <stdio.h>
    main()
    {
        int conta,
            a,
            somma,
            min;
        a = 0;
        conta = 1;
        printf("Inserisci un numero ");
        scanf("%d",&a);
        min = a;
        do
        {
              printf("Inserisci un numero ");
              scanf("%d",&a);
              if(a < min)
                       min = a;
              conta++;
        }
        while(conta < 30);
        printf("Il min e': %d \n",min);
        
        fflush(stdin);
        getchar();
    }
    Occhio che hai fatto, nel tuo, diversi errori gravi.
    1)nello scanf la "&" funziona come puntatore alla locazione di mem della var ed è giusto.
    ma nel printf restituisce l'indirizzo della locazione di memoria in cui è contenuta la var.
    2)Nel tuo codice inserivi 31 valori e non 30.
    3)Lo SCANF usato così è scorretto

    Comunque il tuo prog ora va.

    Spero di essere stato esaustivo ed utile.
    Ciao

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.