Programma in C "Cercare il carattere in un array bidime

frenky46
Salve ragazzi l'esercizio è abbastanza simile a quello che avevo postato in precedenza, ho solo qualche piccolo problemino con la matrice dei caratteri che in pratica non mi escono incolonnati per bene

Esempio : inserendo i caratteri a b c a b c dovrei avere una matrice del genere

a b c
a b c

e invece ottengo questo

a b
c a b

E vorrei capire il perchè di questo errore, il resto del programma è esatto.
Ora vi posto il programma :

#include
//questo prgramma cerca un carattere in un array bidimensionale e indica quante volte è presente e le relative posizioni//
main()
{
int i,j,volte,posizionei,posizionej;
char cerca,a[2][3];
printf("inserisci il carattere da cercare\n");
scanf("%c",&cerca);
printf("inserisci i caratteri dello array bidimensionale\n");
for(i=0; i<2; i++)
{
for(j=0; j<3; j++)
{
scanf("%c", &a[j]);
}
}
for(i=0; i<2; i++)
{
for(j=0; j<3; j++)
{
printf("%c ", a[j]);
}
printf("\n");
}
volte=0;
for(i=0; i<2; i++)
{
for(j=0; j<3; j++)
{
if(cerca==a[j])
{
volte=volte+1;
}
}
}
printf("il carattere cercato %c è presente %d volte in posizione ", cerca,volte);
for(i=0; i<2; i++)
{
for(j=0; j<3; j++)
{
if(cerca==a[j])
{
posizionei=i;
posizionej=j;
printf("%d.%d ",posizionei,posizionej);
}
}
}
}

Risposte
Umby2
Vorrei invitarti ad usare il "code", ed ancora ad allineare "l'inizio" di una condizione, con la relativa "chiusura".
Già il C è poco leggibile, ma scritto in questo modo, risulta quasi impossibile seguire il flusso del codice.

giozh
qual'è la parte della stampa dell'array? perche tu dici che ottieni quella stampa e ok, mentre il sorgene che hai scritto dice che cerca il carattere e indica quante volte è presente.. inoltre quando dici l'input che passi al programma, specifica se è una stringa, se è un carattere per volta, se è un array di caratteri etc etc...

frenky46
#include<stdio.h>
//questo prgramma cerca un carattere in un array bidimensionale e indica quante volte è presente e le relative posizioni//
main()
{
int i,j,volte,posizionei,posizionej;
char cerca,a[2][3];
printf("inserisci il carattere da cercare\n");
scanf("%c",&cerca);
printf("inserisci i caratteri dello array bidimensionale\n");
for(i=0; i<2; i++)                                                  // legge i 6 caratteri della matrice //
   {
   for(j=0; j<3; j++)
      {
      scanf("%c", &a[i][j]);
      }
   }
for(i=0; i<2; i++)                                                   // stampa la matrice di caratteri //
   {
   for(j=0; j<3; j++)
      {
      printf("%c ", a[i][j]);
      }
   printf("\n");
   }
volte=0;
for(i=0; i<2; i++)                                                 // confrota i caratteri con il valore da cercare //
   {
   for(j=0; j<3; j++)
      {
      if(cerca==a[i][j])                                     
         {
         volte=volte+1;                                           // conta il numero di volte presente // 
         }
      }
   }
printf("il carattere cercato %c è presente %d volte in posizione ", cerca,volte);
for(i=0; i<2; i++)
   {
   for(j=0; j<3; j++)
      {
      if(cerca==a[i][j])                                              // individua le posizioni dei caratteri cercati //
         {
         posizionei=i;
         posizionej=j;
         printf("%d.%d ",posizionei,posizionej);
         }
      }
   }
}



Ho cercato di scriverlo al meglio, se ci sono altri problemi ditemi

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.