Problema con le strutture: input [URGENTE!]

di il
3 risposte

Problema con le strutture: input [URGENTE!]

Ciao a tutti mi sto avvicinando alla programmazione in c ma ho grosse difficoltà..questa è una bozza di un programma che dovrebbe acquisire i dati per delle strutture (prenotazioni di un laboratorio) per poi accettare solo quelle compatibili.
E' tutto il pomeriggio che lo ricontrollo ma non c'è verso di farlo funzionare..dove ho sbagliato??
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct g
{
        char sigla[10];
        double inizio;
        double fine;
} gruppo;

int main()
{
    int i,n,j;
    gruppo x[50],ris[50];
    char stringa[50],a[10],b[10],c[10];
    printf("Inserisci la sigla del gruppo di ricerca, l'ora di inizio e l'ora di fine\n");
    gets(stringa);
    j=0;
    while ((strcmp(stringa,"FINE")) != 0)
    {
          i=0;
          n=0;
          while(stringa[i] != ' ')
          {
                           a[n]=stringa[i];
                           i++;
                           n++;
          }                          
          while (stringa[i] == ' ') i++;
          n=0;
          while(stringa[i] != ' ')
          {
                           b[n]=stringa[i];
                           i++;
                           n++;
          }                          
          while (stringa[i] == ' ') i++;
          n=0;
          while(stringa[i] != ' ')
          {
                           c[n]=stringa[i];
                           i++;
                           n++;
          }  
          strcpy((x[j].sigla),a);
          (x[j].inizio)=atof(b);
          (x[j].fine)=atof(c);
          j++;
          gets(stringa);
    } 
    for (i=0; i<j; i++)
    {
        printf("%s\n",x[i].sigla);
        printf("%f\n",x[i].inizio);
        printf("%f\n",x[i].fine);
    }
    system("PAUSE");
    return 0;
}
        
          
          

3 Risposte

  • Re: Problema con le strutture: input [URGENTE!]

    Ciao innanzitutto ci sono cose non chiare come all'inizio:
    while ((strcmp(stringa,"FINE")) != 0)
    che vuol dire??ù
    poi
    while(stringa != ' ')
    {
    a[n]=stringa;
    i++;
    n++;
    }
    while (stringa == ' ') i++; //a che serve!!!

    è normale che stringa =' ' poichè sei uscito dal loop quando stringa =' ' quindi viene semplicemente i++. Poi non serve fare ubn ciclo. Avresti potuto fare un semplice if.
    in conclusione il codice diviene:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    typedef struct g
    {
    char sigla[10];
    double inizio;
    double fine;
    } gruppo;

    int main()
    {
    int i,n,j;
    gruppo x;
    char stringa[50];a[10];b[10];c[10];

    printf("Inserisci la sigla del gruppo di ricerca, l'ora di inizio e l'ora di fine\n");
    gets(stringa);
    j=0;

    i=0;
    n=0;
    while(stringa != ' ')
    {
    a[n]=stringa;
    i++;
    n++;
    }
    i++;
    n=0;
    while(stringa != ' ')
    {
    b[n]=stringa;
    i++;
    n++;
    }
    i++;
    n=0;
    while(stringa != ' ') //questo comporta che la stringa che viene scritta deve terminare con uno SPAZIO
    {
    c[n]=stringa[i];
    i++;
    n++;
    }
    strcpy((x.sigla),a);
    x.inizio=atof(b);
    x.fine=atof(c);

    printf("%s\n",x.sigla);
    printf("%f\n",x.inizio);
    printf("%f\n",x.fine);

    system("PAUSE");
    return 0;
    }

    ho notato che hai creato un array di gruppo, ma non serviva assolutamente.
    spero che sia chiaro. ciao
  • Re: Problema con le strutture: input [URGENTE!]

    Grazie per l'aiuto ma le modifiche proposte sono completamente inutili in quanto non risolvono il problema..cmq ho risolto da me.
  • Re: Problema con le strutture: input [URGENTE!]

    Hai guardato il codice che ti ho postato. è banalissimo!!! come puo non funzionare.... cmq visto che hai risolto, dovresti postare la soluzione.
Devi accedere o registrarti per scrivere nel forum
3 risposte