Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    grosso problema con C [URGENTE!!]

    Grazie in anticipo a chiunque vorrà rispondermi...
    dunque...questo programma dovrebbe acquisire in input una stringa con i dati da inserire in una struttura appropriata separati da uno spazio, e poi stampare le strutture.. il punto è che dopo ore che cerco l'errore non l'ho ancora trovato e non riesco a fargli acquisire più di un membro per ogni struttura...
    #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;
    }

  2. #2
    Non serve specificare il livello di urgenza nel titolo...
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Infatti ... e' inutile indicare se e' urgente o no ... questo non e' un pronto soccorso ...

    In ogni caso, nel tuo codice vedo un paio di errori ...

    Quando separi le 3 parti della stringa iniziale ti aspetti che anche l'ultima parte sia conclusa da uno spazio e questo puo' non essere vero (anzi, in genere non lo e' perche' si inserisce

    XXX 10 12

    e dopo il 12 si pressa invio, non spazio ...).

    Inoltre, non consideri il carattere terminatore delle 3 stringhe cosi' che nessuna di essa e' terminata regolarmente con il carattare null. Per questo motivo la strcpy e le atof possono comportarsi in maniera anomala "sporcando" parti di memoria del processo ... insomma, sistema questi problemi prima di tutto ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.