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

    [C] - Programmare su linux.

    Vorrei incominciare a sviluppare per piattaforme unix.

    Ma mi sono trovato davanti a questo problema....ho scritto un piccolo programmino che mi trova il numero massimo tra un'elenco di numeri forniti dall'utente,cosi per provare il compilatore.

    Scrivo il codice e ce qualcosa che non va....(non badate all'algoritmo l'ho scritto in 2 minuti):

    #include <stdio.h>

    int main(){

    int NumElenco;
    int NumeroAttuale;
    int NumeroPrecedente;
    int NumeroMax;
    int i;

    i = 0;


    system("clear");

    printf(".:Calcolare il numero massimo tra piu numeri:.\n");
    printf("\nInserire numero dell'elenco: ");
    scanf("%d",&NumElenco);
    for(i = 0;i = NumElenco;i++){
    if (i=0) {

    printf("Inserisci %d° Numero: ",&i);
    scanf("%d",&NumeroAttuale);
    NumeroPrecedente = NumeroAttuale;
    NumeroMax = NumeroAttuale;
    }
    if (i >0) {

    printf("Inserisci %d° Numero: ",&i);
    scanf("%d",&NumeroAttuale);
    if (NumeroAttuale > NumeroPrecedente){

    NumeroPrecedente = NumeroAttuale;
    NumeroMax = NumeroAttuale;
    }
    }
    }

    printf("Numero Max: %d",&NumeroMax);


    }
    il programma una volte che mi chiede il numero dell'elenco(all'inizio praticamente) si blocca...ovvero si puo continuare a scrivere nella shell ma i dati non vengono elaborati dal programma,in pratica il primo ed unico ciclo for non incomincia mai!

    Ora o sono rincoglionito io è ho fatto qualche errore nel codice(in tal caso la cosa è preoccupante XD) o ci sono evidenti differenze tra piattaforma windows e unix.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [C] - Programmare su linux.

    Originariamente inviato da kataklisma
    Ma mi sono trovato davanti a questo problema....ho scritto un piccolo programmino che mi trova il numero massimo tra un'elenco di numeri forniti dall'utente,cosi per provare il compilatore.

    Scrivo il codice e ce qualcosa che non va....
    Nel for(i = 0;i = NumElenco;i++) hai messo i = NumElenco.
    Questa è una assegnazione! Quindi ad 'i' viene assegnato il valore di NumElenco e l'espressione è "vera" (quindi il for continua all'infinito).
    Nel primo if dentro il for hai fatto nuovamente una assegnazione cioè i=0, quindi l'espressione è "falsa" (i è 0, quindi falso) e il blocco non viene eseguito. Essendo quindi i diventato 0, pure il secondo if è "falso". Risultato: è un loop infinito che non fa nulla.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Che scemo...è vero

    Ecco cosa succede a programmare troppo in VB6....

    Eccolo corretto:

    #include <stdio.h>

    int main(){

    int NumElenco = 0;
    int NumeroAttuale = 0;
    int NumeroPrecedente = 0;
    int NumeroMax = 0;
    int i = 0;




    system("clear");

    printf(".:Calcolare il numero massimo tra piu numeri:.\n");
    printf("\nInserire numero dell'elenco: ");
    scanf("%d",&NumElenco);
    for(i = 0;i <NumElenco;i++){
    if (i==0) {

    printf("Inserisci %d° Numero: ",i);
    scanf("%d",&NumeroAttuale);
    NumeroPrecedente = NumeroAttuale;
    NumeroMax = NumeroAttuale;
    }
    if (i >0) {

    printf("Inserisci %d° Numero: ",i);
    scanf("%d",&NumeroAttuale);
    if (NumeroAttuale > NumeroPrecedente){

    NumeroPrecedente = NumeroAttuale;
    NumeroMax = NumeroAttuale;
    }
    }

    }
    printf("Numero Max: %d",NumeroMax);


    }

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 © 2025 vBulletin Solutions, Inc. All rights reserved.