Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di xMosč
    Registrato dal
    Jan 2015
    residenza
    Fermo,Marche
    Messaggi
    6

    [C]Un piccolo aiuto sulle matrici...

    Salve ragazzi,voglio chiedervi una cosa sulle matrici Alfanumeriche. Forse ho capito il motivo di questo problema che ho,ma non so come risolverlo...
    Allora,il codice con il quale ho provato a dare in input un qualunque carattere nella matrice č questo:

    codice:
    for(cont=0;cont<rig;cont++){ //Inizio del ciclo for per inserire i caratteri all'interno della matrice
     for(cont_1=0;cont_1<col;cont_1++){
      printf("\nInserire carattere in posizione riga %d e colonna %d: ",cont+1,cont_1+1);
      scanf("%c",& matr[cont][cont_1]);
     }
    }
    Ma quando vado ad eseguire il programma quello che ottengo č:

    Inserire carattere in posizione riga 1 e colonna 1:
    Inserire carattere in posizione riga 1 e colonna 2: (Qui posso)

    Il problema č che cosģ non ho la possibilitą di inserire il carattere nella prima cella di memoria della matrice...
    Grazie in anticipo dell'aiuto.
    "Per essere traditi bisogna fidarsi,io non l'ho mai fatto." ~Cpt. Price

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Utilizzi delle altre scanf prima? Se sģ il problema probabilmente č quello. Inserisci uno spazio prima del %c.
    Ultima modifica di Scara95; 18-01-2015 a 21:16
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it L'avatar di xMosč
    Registrato dal
    Jan 2015
    residenza
    Fermo,Marche
    Messaggi
    6
    Decisamente tanti ne ho utilizzati:

    codice:
    do{
    printf("\nInserire parola da ricercare nella matrice(max 100 caratteri): ");
    scanf("%s",ric); //Input della parola da ricercare nella matrice
    }while(strlen(ric)<0); //Se la lunghezza della parola č uguale o minore a 0,essa dovrą essere re-inserita
    do{
     printf("\nInserire numero di righe della matrice(max 100): ");
     scanf("%d",& rig); //Limite della righe che puņ raggiungere la matrice(deciso dall'utente)
    }while((rig<=0)||(rig>100));
    do{
     printf("\nInserire numero di colonne della matrice(max 100): ");
     scanf("%d",& col); //Limite delle colonne che puņ raggiungere la matrice(scelto in input dall'utente)
    }while((col<=0)||(col>100));
    for(cont=0;cont<rig;cont++){ //Inizio del ciclo for per inserire i caratteri all'interno della matrice
     for(cont_1=0;cont_1<col;cont_1++){
      printf("\nInserire carattere in posizione riga %d e colonna %d: ",cont+1,cont_1+1);
      scanf("%c",& matr[cont][cont_1]);
     }
    }
    Adesso provo in un altro modo allora,grazie mille dell'aiuto!
    "Per essere traditi bisogna fidarsi,io non l'ho mai fatto." ~Cpt. Price

  4. #4
    Utente di HTML.it L'avatar di xMosč
    Registrato dal
    Jan 2015
    residenza
    Fermo,Marche
    Messaggi
    6
    Ho messo lo spazio prima del "%c" e funziona..GRAZIE.
    "Per essere traditi bisogna fidarsi,io non l'ho mai fatto." ~Cpt. Price

  5. #5
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Il motivo č che scanf lascia il buffer sporco. Nello specifico lascia il carattere '\n'. Uno spazio nella stringa di formattazione elimina tutti i blanks. Attento che con quello spazio non potrai inserire come carattere uno spazio, un a capo o un tab.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

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 © 2024 vBulletin Solutions, Inc. All rights reserved.