Oppure

Loading
30/07/10 8:23
morcomucchia
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??

#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);
     }                               
     
aaa
30/07/10 8:42
totipianurese
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:
#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 30/07/10 8:43
aaa
30/07/10 9:41
morcomucchia
#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??
aaa
30/07/10 10:03
Ultimo

dovrebbe esserci un errore logico, :-|
If ok Then GOTO Avanza else GOTO Inizia

30/07/10 11:00
totipianurese
fai un esempio di codici da inserire
aaa
30/07/10 13:36
crash outside control
#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);
}            
aaa
01/08/10 8:12
morcomucchia
il codice è un codice alfanumerico di 15 elementi...
aaa
01/08/10 8:16
morcomucchia
Postato originariamente da crash outside control:

#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);
}            



:rotfl: grazie!!!:k:
aaa