morcomucchia (Normal User)
Newbie
Messaggi: 9
Iscritto: 28/07/2010
|
ciao a tutti! io ho scritto questo codice che acquisisce dei codici alfanumerici di 12 caratteri. premetto che per compilare uso Dev-C++. l'inserimento del primo codice non mi da problemi, ma quando devo inserire il secondo il programma mi si blocca il programma...mi potreste aiutare??
Codice sorgente - presumibilmente C++ |
#include<stdio.h> #include<stdlib.h> #include <string.h> int main(void) { /*chiedi il numero di codici*/ int num_codici, index, *p_codice; int i=0, j=0; char car; int num; printf("Digita il numero codici da inserire:\t"); scanf("%d",&num_codici); int *codice; do { codice=(int*)malloc(12*sizeof(int)); printf("digita il codice alfanumerico da inserire:"); do { scanf("%c", &car); num = car - '0'; codice[i]=num; i++; } while (i<12); } while(j<num_codici); system("pause"); return(0); }
|
|
|
totipianurese (Member)
Pro
Messaggi: 168
Iscritto: 24/06/2008
|
scusa, ma io del tuo codice non ho capito niente.
Cmq prima di tutto, credo che devi azzerare la variabile "i" prima del secondo Do While
cosi:
Codice sorgente - presumibilmente C++ |
#include<stdio.h> #include<stdlib.h> #include <string.h> int main(void) { /*chiedi il numero di codici*/ int num_codici, index, *p_codice; int i=0, j=0; char car; int num; printf("Digita il numero codici da inserire:\t"); scanf("%d",&num_codici); int *codice; do { codice=(int*)malloc(12*sizeof(int)); printf("digita il codice alfanumerico da inserire:"); i=0; // COSI do { scanf("%c", &car); num = car - '0'; codice[i]=num; i++; } while (i<12); } while(j<num_codici); system("pause"); return(0); }
|
Ora dovrei porti una domanda, da questo confronto "while(j<num_codici);" non si uscira mai, sai perche??.
PErche' si esce da un ciclo do while, quando la condizione e' falsa.
Cosi come hai fatto tu, j è sempre uguale a zero e di conseguenza e' sempre minore di num_codici. Credo che sia un loop infinito
Ultima modifica effettuata da totipianurese il 30/07/2010 alle 10:43 |
|
morcomucchia (Normal User)
Newbie
Messaggi: 9
Iscritto: 28/07/2010
|
Codice sorgente - presumibilmente C++ |
#include<stdio.h> #include<stdlib.h> #include <string.h> int main(void) { /*chiedi il numero di codici*/ int num_codici, index, *p_codice; int i=0, j=0; char car; int num; printf("Digita il numero codici da inserire:\t"); scanf("%d",&num_codici); int *codice; do { codice=(int*)malloc(12*sizeof(int)); printf("digita il codice alfanumerico da inserire:"); do { scanf("%c", &car); num = car - '0'; codice[i]=num; i++; } while (i<12); j++; } while(j<num_codici); system("pause"); return(0); }
|
ora ho aggiunto l'incremento della j dopo il primo do while, ma il problema c'è lo stesso. io non è che non riesco ad uscire dal ciclo, non riesco ad inserire il secondo codice perchè il programma va in errore di esecuzione e non riesco a capire il perchè...
comunque è c non c++.
poi posso chiderti perchè non hai capito niente dal mio codice??
|
|
Ultimo (Member)
Guru
Messaggi: 877
Iscritto: 22/05/2010
|
dovrebbe esserci un errore logico,
If ok Then GOTO Avanza else GOTO Inizia
|
|
totipianurese (Member)
Pro
Messaggi: 168
Iscritto: 24/06/2008
|
fai un esempio di codici da inserire
|
|
crash outside control (Normal User)
Expert
Messaggi: 217
Iscritto: 12/02/2008
|
Codice sorgente - presumibilmente C++ |
#include<stdio.h> #include<stdlib.h> int main(void) { /*chiedi il numero di codici*/ int num_codici, index, *p_codice; int i=0, j=0; char car; char *codice; printf("Digita il numero codici da inserire:\t"); scanf("%d",&num_codici); do { codice=(char*)malloc(12*sizeof(char)); printf("digita il codice alfanumerico da inserire:"); i=0; do { scanf("%c", &car); codice[i]=car; i++; } while (i<12); j++; } while(j<num_codici); system("pause"); return(0); }
|
|
|
morcomucchia (Normal User)
Newbie
Messaggi: 9
Iscritto: 28/07/2010
|
il codice è un codice alfanumerico di 15 elementi...
|
|
morcomucchia (Normal User)
Newbie
Messaggi: 9
Iscritto: 28/07/2010
|
Postato originariamente da crash outside control:
Codice sorgente - presumibilmente C++ |
#include<stdio.h> #include<stdlib.h> int main(void) { /*chiedi il numero di codici*/ int num_codici, index, *p_codice; int i=0, j=0; char car; char *codice; printf("Digita il numero codici da inserire:\t"); scanf("%d",&num_codici); do { codice=(char*)malloc(12*sizeof(char)); printf("digita il codice alfanumerico da inserire:"); i=0; do { scanf("%c", &car); codice[i]=car; i++; } while (i<12); j++; } while(j<num_codici); system("pause"); return(0); }
|
|
grazie!!! |
|