Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [C] ricerca di elemento in matrice

    Volevo creare un programma che, dopo che l'utente ha scelto n° righe e colonne e immesso i valori di ogni elemento della matrice, chieda un numero e verifichi se la matrice contiene tale numero. So per certo che il resto è fatto correttamente, dunque l'errore è in questa parte di codice che applica la ricerca.

    k = 0;
    for(i=0; i<r; i++)
    for(j=0; j<c; j++){
    if(a[i][j]==ele) {
    printf("\nElemento %d presente in riga %d colonna %d\n", ele,i,j);
    k=1;}
    };
    if(k==0)
    printf("\nElemento non presente!\n");

    Dove l'errore? Mi viene sempre Elemento non presente!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Questa parte sembra corretta. L'errore deve essere nell'altra parte di codice.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Originariamente inviato da oregon
    Questa parte sembra corretta. L'errore deve essere nell'altra parte di codice.
    Ti scrivo l'intero programma:

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

    #define M 10

    int main(int argc, char *argv[])
    { int a[M][M];
    int i,j, r,c,k;
    int ele;

    do{
    printf("Numero righe matrice: \n");
    scanf("%d", &r);
    } while(r<1 || r>M);

    do{
    printf("Numero colonne matrice: \n");
    scanf("%d", &c);
    } while(c<1 || c>M);

    /* Immissione elementi*/

    for(i=0; i<r; i++)
    for(j=0; j<c; j++)
    { printf("Inserisci valore riga %d colonna %d: \n", i,j);
    scanf("%d", &a[i][j]);
    }

    printf("Elemento da ricercare: ");
    scanf("%1s", &ele);

    for(i=0; i<r; i++)
    for(j=0; j<c; j++)
    { printf("valore riga %d colonna %d: %d\n", i,j, a[i][j]);
    }

    /* Ricerca sequenziale */
    k = 0;
    for(i=0; i<r; i++)
    for(j=0; j<c; j++){
    if(a[i][j]==ele) {
    printf("\nElemento %d presente in riga %d colonna %d\n", ele,i,j);
    k=1;
    }
    }
    if(k==0)
    printf("\nElemento non presente!\n");

    system("PAUSE");
    return 0;
    }

  4. #4
    Mi accorgo ora che ho messo %1s al posto di %d a ele che è un int. Credo fosse sbagliata l'ultima parte di codice e invece era un mio errore di distrazione. Ora funziona.

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.