Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Salvy95
    Registrato dal
    Jul 2008
    Messaggi
    199

    [c] Crash-struct e vettori

    Salve a tutti!
    Ho un problema...
    vorrei inserire in uno struct un vettore a cui fare poi riferimento in seguito, ma va tutto in crash!

    Codice PHP:

    #include <stdio.h>
    #include <stdlib.h>
    #define size 20
    int main(int argcchar *argv[])
    {
      
    struct vettore {
             
    int anno[size];
             
    char atleta[size];
             } 
    v;
                          
    int i,j=0
                                     
    // Inizializzo il vettore.
                 
    while(j<size){
                                 
    v.anno[j]=0;
                                 
    v.atleta[j]=0;
                                 
    j++;
                                 }
                                 
    //Comincio a riempire il vettore con i dati dell'utente.
             
    printf("\nQuanti elementi vuoi inserire nel vettore?\n");
             
    scanf("%d",&i);
             for(
    j=0;j<i;j++){
                     
    printf("\n%d) Anno:",(j+1));
                     
    scanf("%d",&v.anno[j]);
                     
    printf("\n%d) Atleta:",(j+1));
                     
    scanf("%s",&v.atleta[j]);
                     
    printf("\nAncora %d variabili da inserire\n\n",(i-j)-1);
                     }
                     
    printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nElenco completo degli atleti:");
                     for(
    j=0;j<i;j++){
                                      
    printf("\n%d) Atleta:%s Anno:%d",j+1,v.atleta[j],v.anno[j]);
                                      }
                     
      
    system("PAUSE");    
      return 
    0;


    Aiuto

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Forse stai facendo confusione ...

    Hai dichiarato un solo elemento strutturato che ha al suo interno un vettore di int e un vettore di char (ovvero una sola stringa del C).

    Forse tu volevi usare un vettore di strutture in cui memorizzare, per più atleti, anno e nome. Avresti dovuto quindi scrivere, ad esempio per 10 atleti con un nome di 30 caratteri

    codice:
    struct vettore 
    { 
        int anno; 
        char atleta[30]; 
    } v[10];
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di Salvy95
    Registrato dal
    Jul 2008
    Messaggi
    199
    oregon ti ringrazio

    che errore sciocco...
    è che programmare a mezza notte...
    post di seguito il nuovo codice per i curiosi

    Codice PHP:


    #include <stdio.h>
    #include <stdlib.h>
    #define sizex 50
    #define sizey 10
    int main(int argcchar *argv[])
    {
      
    struct vettore {
             
    int anno;
             
    char atleta[sizex];
             } 
    v[sizey];
                          
    int i,k=0,j=0;
                          
    //Inauguro il vettore.
                          
    while(j<sizey){
                                        while(
    k<sizex){
                                                       
    v[j].atleta[k]=0;
                                                       
    k++;
                                                       }
                                                          
    j++;
                                                          }
                                 
    //Comincio a riempire il vettore con i dati dell'utente.
             
    printf("\nQuanti elementi vuoi inserire nel vettore?\n");
             
    scanf("%d",&i);
             for(
    j=0;j<i;j++){
                     
    printf("\a\n%d) Anno:",(j+1));
                     
    scanf("%d",&v[j].anno);
                     
    printf("\n   Atleta:",(j+1));
                     
    scanf("%s",&v[j].atleta);
                     
    printf("\nAncora %d variabili da inserire\n\n",(i-j)-1);
                     }
                     
    printf("\n\n\nElenco completo degli atleti:");
                     for(
    j=0;j<i;j++){
                                      
    printf("\n%d) Atleta:%s Anno:%d",j+1,v[j].atleta,v[j].anno);
                                      }
                     
    printf("\n");
      
    system("PAUSE");    
      return 
    0;



    Gentilissimi come sempre
    grazie ancora

    alla prossima

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.