Ricerca elementi uguali in una matrice

di il
4 risposte

Ricerca elementi uguali in una matrice

Ragazzi devo fare un programma in C che caricando in una matrice composta da alunni in ogni classe, a mia scelta possa fare o una ricerca del nome e ci siamo, o trovare tutti i nomi uguali che ci sono e qui ho dei problemi... il programma mi funziona solo in parte, e non so dove sbaglio...
Il problema da risolvere è nel case 2...

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

int main()
{
    int r,c,i,j,scelta,pas,k,z;
    char alunni[50][50][50],classe[50][50],ric[50],sez[50];

    printf("Inserisci numero di classi\n");
    scanf("%d",&r);
    printf("Inserisci numero di alunni per classe\n");
    scanf("%d",&c);

    for(i=0;i<r;i++){
        printf("Inserisci il nome della sezione della classe %d\n",i+1);
        scanf("%s",&classe[i]);
        for(j=0;j<c;j++){
            printf("Inserisci nome dell'alunno %d della sezione %s\n",j+1,classe[i]);
            scanf("%s",&alunni[i][j]);
        }
    }

    printf("Cosa vuoi fare?\n");
    printf("1)Cercare un nome di un alunno nella scuola\n");
    printf("2)Cercare  alunni con uno stesso nome\n");
    scanf("%d",&scelta);

    switch(scelta) {

    case 1:

        printf("\n\nInserire nominativo da ricercare : ");
        scanf("%s",&ric);

        pas=0;
        for(i=0;i<r;i++){
            for(j=0;j<c;j++){
                if(strcmp(ric,alunni[i][j])==0) {
                    strcpy(sez,classe[i]);
                    pas=1;
            }
        }
        }
        if(pas==1) printf("\n\nL'alunno %s da lei ricercato e' presente nella scuola, nella sezione %s\n",ric,sez);
        else printf("\n\nL'alunno %s non e' presente nella scuola\n\n",ric);

    case 2:


        for(i=0;i<r;i++){
            for(j=0;j<c;j++){
                for(k=i+1;k<r;k++){
                    for(z=0;z<c;z++){
                        if(strcmp(alunni[i][j],alunni[k][z])==0){
                            printf("%s\n",alunni[k][z]);
                        }
                    }
                }
            }
        }
    }
    system("pause");
    return 0;
}

4 Risposte

  • Re: Ricerca elementi uguali in una matrice

    Scusa ma ti sei chiesto a cosa serve il pulsante [ CODE ] ?
    Che compilatore usi? che ambiente di sviluppo? che genere di errore?
    NOO!
    Bang!
    Oi ciò,ciò stò problema a què,non sò a me ma sbraita tot de ross fat un pò vui altr che mi so rot e .+.
  • Re: Ricerca elementi uguali in una matrice

    Non si capisce molto bene il tuo intento... In pratica tu dici: inserisco i nomi di tutti gli alunni, e poi controllo se ci sono dei casi di alunni con lo stesso nome.... Da come hai scritto il case 2 non trovo errori, secondo me fai casino con gli indice, essendo un vettore tridimensionale non è facile da gestire... Non conosci le struct, sarebbero utili per semplificare l'esercizio...
  • Re: Ricerca elementi uguali in una matrice

    Ecco ho sistemato... cmq linguaggio C, uso codeblock...
    cmq anche secondo me c'è qualche piccolo errore nn so dove... perchè i nomi me li da, però tipo se sono 3 uguali, me ne stampa 2...
    il mio intento è quello di stampare tutti i nomi che sono ripetuti almeno 2 volte ...
    tipo se carico luca giovanni antonio luca peppe antonio, dopo mi deve andare a stampare luca luca antonio antonio...
  • Re: Ricerca elementi uguali in una matrice

    Non ti da questi warning?
    ||=== iop, Debug ===|
    D:\C_C++\CodeBlock\iop\main.c||In function 'main':|
    D:\C_C++\CodeBlock\iop\main.c|29|warning: format '%s' expects argument of type 'char *', but argument 2 has type 'char (*)[50]' [-Wformat]|
    D:\C_C++\CodeBlock\iop\main.c|32|warning: format '%s' expects argument of type 'char *', but argument 2 has type 'char (*)[50]' [-Wformat]|
    D:\C_C++\CodeBlock\iop\main.c|46|warning: format '%s' expects argument of type 'char *', but argument 2 has type 'char (*)[50]' [-Wformat]|
    ||=== Build finished: 0 errors, 3 warnings (0 minutes, 3 seconds) ===|
    Non ti sei chiesto il perchè?
Devi accedere o registrarti per scrivere nel forum
4 risposte