Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: problemino in c

  1. #1

    problemino in c

    Facciamo finta che l'imput sia 2+2... cosa c'è di sbagliato in questo codice???

    #include <stdio.h>

    #define lung 1000

    int main(){
    int somma=0, i;
    int vett[lung+1];

    printf("\nMetti:");
    while(((vett[i]=getchar())!='\n')&&(i<=lung))
    i++;
    vett[i]='\0';
    for(i=0;;i++){
    if(vett[i]=='+'){
    somma=vett[i-1]+vett[i+1];
    printf("\nEcco il risultato %d", somma);
    printf("\nEcco il -1 %d", vett[i-1]);
    printf("\nEcco il +1 %d", vett[i+1]);
    break;
    }
    }
    printf("\nFuori.");
    getchar();
    return 0;
    }
    Ci provo...e ci riesco!!!
    http://kings.altervista.org

  2. #2
    rox@localhost:~/tmp$ ./file

    Metti:2+2
    Segmentation fault

    GhGHGhG! :gren:

    Ma che cacchio devi fare?

  3. #3
    Cmq a parte gli scherzi ..

    1) Intanto vedo che il procedimento e` molto "rustico", perche` prende solo numeri di una cifra.

    2) i non e` inizializzato a 0, quindi vai a leggere indici astronomici..

    3) presi cosi` come sono, i numeri da 0 a 9 non avranno questo valore, ma saranno da '0' a '9', per il fatto che tu con getchar() prendi in input dei caratteri, non dei numeri. Quindi avrai '0' -> 48, '1' -> 49, '2' -> 50 etc. Percio` prima di fare la somma devi sottrarre 48 dagli addendi (o 0x30 che e` piu` esplicativo).

    Ciao.

  4. #4

    vettori

    Non so spiegarti bene!!!
    e se invece di 2+2 qualcuno mette 4+5??? so che si può fare diversamente ma voglio togliermi questa curiosità!!!
    Ah comunque l'errore che mi da è che dopo inserito l'imput si chiude... un'altra cosa... che ti ridi???
    Ci provo...e ci riesco!!!
    http://kings.altervista.org

  5. #5
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    Ti si chiude perchè il programma termina
    includi questi


    #include <stdlib.h>

    cancella return 0; e scrivi questo alla fine del programma

    system("pause");

    Ciao

  6. #6
    Oddio come ce l`avete fatte diventare con questa storia! Proprio non sapete eseguire un programma da console invece che farci 2 click sopra? SVEGLIAAA!

    E poi che ti cancelli "return 0"? Sputiamo sopra l`ANSI C .. ma si` ..

    Cmq non era questo il problema, dicendo "si chiude" intendeva che crashava .. perche` a me dava SIGSEGV come vedi.

    Ciao.

  7. #7
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    Beh il progr non l'avevo provato perchè devo rinstallare il TurboC
    e poi perchè tutte ste storie?
    Vedi che un frum serve a dare una mano a chi ne capisce meno. Quindi invece di fare tanto polemiche siccome sei molto più esperto di noi aiutaci.

  8. #8
    Io lui l`ho aiutato .. ma non aiuto invece chi fa le cose per sentito dire e non pensando a quello che sta facendo.

  9. #9
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    Non posso dire più di quanto so
    L'ho visto fare, l'ho provato, funzionava e l'ho consigliato.

  10. #10
    Meglio un getchar() alla fine se proprio non ne puoi fare a meno. Usare una system() per questa cretinata e` una cosa assolutamente sciocca e tranquillamente evitabile. Poi fai come ti pare, ma non farai programmi portabili pensandola cosi`, ovvero con ragionamenti del tipo "basta che funzioni".

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.