Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    87

    [C] Problema di ricerca dentro matrice

    ciao a tutti,avrei un problema,stavo cercando di realizzare un programma che permettesse,una volta inserite 3 stringhe in una matrice,di cercare una lettera a scelta e tenerne il conto per ogni singola riga.Tentando e ritentando sono arrivato qui

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main()
    {
        char mat[3][20];
        int i,j,c;
        char search;
        for(i=0;i<3;i++)
        {
                        printf("\n parola %d \n",i+1);
                        scanf("%s%*c",mat[i]);
                        printf("\n");
        }
        printf("inserisci lettera da cercare: ");
        scanf("%c",&search);
        printf("\n\n ora conteggerò le %c presenti in ogni parola\n",search);
        for(i=0;i<3;i++)
        {
                        c=0;
                        for(j=0;j<20;j++)
                        {
                                         if(mat[i][j]==c)
                                         {
                                                         c++;
                                         }
                        }
                        printf("\n nella parola %d ci sono esattamente %d lettere %c \n",i+1,c,search);
        }
        printf("\n\n controlla tu stesso!\n");
        for(i=0;i<3;i++)
        {
                        printf("riga %d",i+1);
                        for(j=0;j<strlen(mat[i]);j++)/*strlen(mat[i]) fa in modo che vengano stampate solo le lettere nella stringa i,in modo da non stampare il contenuto delle
                                                     delle celle avanzate,quindi j<lunghezza della riga i-esima della matrice*/
                        {
                                        printf("%2c",mat[i][j]); /*attenzione qui ho messo %c invece che %s perchè non viene considerata la stringa,ma ,invece,viene immesso
                                                                 ogni singolo carattere ogni volta*/
                        }
                        printf("\n\n");
        }
      
      system("PAUSE");	
      return 0;
    }
    il problema penso sia da attribuire all'if,ho pensato che così facendo sarebbe andato a confrontare ogni singola cella con la lettera scelta,ma non sono molto sicuro del fatto che si possa impostare in quel modo. Come risultato,indipendentemente da quello che scrivo o cerco è sempre 1 1 2, anche se non c'è nemmeno la lettera cercata esce sempre quella combinazione.Devo aver fatto un errore enorme e che solo io non sono capace di vedere grazie ciao!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Stai semplicemente confrontando il carattere mat[i][j] con il contatore c anziché con il carattere search.

    codice:
    if (mat[i][j] == search)
    every day above ground is a good one

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.