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

    [C] Problema di stampa a schermo di stringhe

    Buongiorno a tutti...è da poco che ho iniziato a tentare di scrivere qualche programma in C..ho trovato una piccola difficoltà che non riesco a superare nel seguente listato da me scritto:

    #include <stdio.h>
    #include <stdlib.h>

    main()

    {
    int anno[2008];
    char cogn[20][2], nom[20][2], ind[20][2];
    int x;
    for (x=1; x<=2; x++)
    {
    printf("\t\tAnagrafica classe\n\n");
    printf("\nCognome: ");
    scanf("%s",cogn[x]);
    printf("\nNome: ");
    scanf("%s",nom[x]);
    printf("\nIndirizzo: ");
    scanf("%s",ind[x]);
    printf("\nAnno di nascita: ");
    scanf("%d",&anno[x]);
    system("cls");
    }

    for (x=1; x<=2; x++)

    {
    printf("%s %s %s %d\n",cogn[x],nom[x],ind[x],anno[x]);

    }

    getchar();
    getchar();

    }

    In questo caso il programma chiede l'immissione di 2 nominativi, ma una volta stampati risultano sovrapposti (più precisamente il secondo sovrappone il primo nella prima riga mentre nella seconda viene stampato esclusivamente il secondo). Da cosa può essere dovuto questo problema? Scusate degli altri eventuali errori che ho fatto in fase di scrittura del listato del programma. Grazie mille...

  2. #2
    Ti consiglio di incominciare da un programma più semplice. Ad esempio, anziché chiedere due nominativi, uno solo.

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da MacApp
    Ti consiglio di incominciare da un programma più semplice. Ad esempio, anziché chiedere due nominativi, uno solo.
    ... e di ragionare sul senso di questa riga

    int anno[2008];
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Originariamente inviato da oregon
    ... e di ragionare sul senso di questa riga

    int anno[2008];
    Si...scusate..ho sbagliato a scrivere...

    int anno[2]

    così dovrebbe andare meglio....
    comunque volevo solo capire dove sbaglio...ho provato ad eseguire il programma per un solo nominativo e nn trovo questi problemi..grazie ancora per chi mi ha risposto e per chi mi risponderà..

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Intanto gli indici in C partono da 0 ... quindi x non deve contare da 1 a 2 ma da 0 a 1 ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    e poi leggiti la seguente:
    http://it.wikipedia.org/wiki/Array_i...tidimensionali

    specialmente quando scrive:
    Quindi l'array int mioarray[10][20]; si può immaginare come un'array di 10 elementi nella quale ogni elemento è a sua volta un'array di 20 elementi di tipo intero.

  7. #7
    Originariamente inviato da MacApp
    e poi leggiti la seguente:
    http://it.wikipedia.org/wiki/Array_i...tidimensionali
    ok...ho letto..però allora nn capisco come si possa fare un array di stringhe..per quanto riguarda gli array nn mi sembra ci siano errori sul listato....secondo me è un problema di stampa su console visto che risultano sovrapposti...ma ovviamente mi sbaglierò..



    Intanto gli indici in C partono da 0 ... quindi x non deve contare da 1 a 2 ma da 0 a 1 ...
    Sistemato pure questo..ma nn comporta alcuna differenza sul risultato finale..

    Scusate ancora la mia ignoranza...e grazie ancora....

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quello che ti voleva far notare MacApp, ma che non hai notato e' che deve essere

    char cogn[2][20], nom[2][20], ind[2][20];
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Ah...ora capisco...cmq si...era quello il problema.....nn capivo questa cosa perchè prima del c avevo provato linguaggi nei queli le stringhe si trattavano come variabili normali.....non come array di caratteri...grazie per questo chiarimento che mi avete gentilmente dato...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.