Programma in C "Cercare il carattere in un array bidime
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);
}
}
}
}
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
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.
Già il C è poco leggibile, ma scritto in questo modo, risulta quasi impossibile seguire il flusso del codice.
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...
#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