View Single Post
Old 22-04-2009, 20:59   #1
danixxx89
Junior Member
 
Iscritto dal: Apr 2009
Messaggi: 13
[C] Problema con programma

Qualcuno mi aiuti per piacere
L'output di questo programma non mi convince... Il do/while non mi da il risultato che credevo mi dovesse dare: cioè subito dopo "Inserire il carattere di End of File per terminare, altrimenti premere Invio:" mi esce scritto anche
"Inserire operatore aritmetico: " (cosa che non dovrebbe succedere, in quanto deve permettere la chiusura della lista) e non riesco a capire il motivo.
Come dovrei fare per eliminare questo problema?!?


Codice PHP:
#include <stdio.h>  
#include <stdlib.h>

#define SIZE 10

typedef struct arithmetic_op{
char operation[0];
int num_of_op;
double operands[SIZE];
struct arithmetic_op *next;
}
arithmetic_op;

void struct_data_storage(arithmetic_op *nptr);

int main()
{
   
arithmetic_op *head=NULL;

   
struct_data_storage(head);
   
   
system ("pause");
   return 
0;
}


void struct_data_storage(arithmetic_op *nptr)
{
   
int n=0a;
   
nptr=(arithmetic_op*)malloc(sizeof(arithmetic_op));
       
   if(
nptr!=NULL){
                           
      do
         {
            
printf("Inserire operatore aritmetico: ");
            
scanf("%c", &nptr->operation);
            
            
printf("Inserire il numero di operandi: ");
            
scanf("%d", &nptr->num_of_op);
            
            while(
n!=nptr->num_of_op){
               
printf("Inserire gli operatori: ");
               
scanf("%f", &nptr->operands);
               
               
n++;
               }
            
            
printf("\n");
            
n=0;
            
            
printf("Inserire il carattere di End of File per terminare,\n"
            "altrimenti premere Invio: "
);
         } while(
a=getchar()!=EOF);
      }
      else {
         
printf("Memoria non sufficiente\n");     
      }
   
   
nptr->next=NULL
   
free(nptr);
   
   return;

P.s.: Il programma non è ancora finito, ma è solo un abbozzo.

Ultima modifica di danixxx89 : 22-04-2009 alle 21:04.
danixxx89 è offline   Rispondi citando il messaggio o parte di esso