16.5 C
Roma
martedì, Maggio 11, 2021
Home Corsi C Ricercare un valore in una matrice in C

Ricercare un valore in una matrice in C

Quando si ha a che fare con le matrici e di conseguenza si ha a che vare con una grande quantità di dati, proprio per questo motivo nella lezione odierna provvederemo a ricercare un valore in una matrice.

Vorremo particolarmente concentrarci sulla funzione per ricercare un elemento in una matrice quindi effettueremo il caricamento tramite le generazione di numeri casuali (Per scoprire come generare un numero casuale clicca qui)

Ideologicamente, potremmo suddividere il programma in tre parti:

  • Caricamento della Matrice, come già descritto avverrà tramite la generazione di numeri casuali (attenzione al fatto che il comando “srand(time(NULL));” deve essere effettuato all’esterno del ciclo for, altrimenti otterremo valori identici per tutta la matrice);
  • Stampa della Matrice, per scoprire maggio informazioni su caricamento e stampa matrice clicca qui;
  • Ricerca del Valore.

Per ricercare un valore in una matrice, abbiamo necessità di due cicli for, uno orientato per spostarsi tra le colonne della matrice ed uno per le righe. Nell’esempio da noi proposto non ricercheremo esclusivamente il primo elemento compatibile ma diremo all’utente ogni posizione della matrice in cui è presente quel valore e infine daremo il conteggio totale di quante volte esso è stato trovato.

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

#define N 10
#define M 10


int main()
{
	int a[N][M];
	srand(time(NULL));
	 
	//---CARICAMENTO DELLA MATRICE CON VALORI CASUALI (COMPRESI FRA 1 E 100)
	for(int i = 0; i < N; i++)
	{
		for(int y = 0; y < M; y++)
		{  		
    		a[i][y] = rand()% 100+1;			 
		}
	}
	
	//----STAMPA DELLA MATRICE
	for(int i = 0; i < N; i++)
	{
		for(int y = 0; y < M; y++)
		{
			printf("%d \t",a[i][y]);
		}
		printf("\n");
	}
	
	//----RICERCA ELEMENTO
	int valore, count;
	count = 0;
	printf("Inserire elemento da ricercare: ");
	scanf("%d", &valore);
	for(int i = 0; i < N; i++)
	{
		for(int y = 0; y < M; y++)
		{
			if(a[i][y] == valore)
			{
				printf("Valore trovato alla colonna %d del rigo %d \n",y+1,i+1);
				count++;
			}
		}
	}
	
	if(count == 1)
		printf("Il valore e' stato trovato %d volta \n",count);
	else if(count > 1)
		printf("Il valore e' stato trovato %d volte \n",count);
	else
		printf("Valore non trovato \n",count);
		
		
	system("pause");
}

SCARICA IL CODICE SORGENTE

LINK UTILI

Pagina Instagram: https://www.instagram.com/developer_sumo/
Corso C: https://www.developersumo.com/c/
Altri algoritmi in C: https://www.developersumo.com/category/corsi/c/algoritmi/
I nostri Corsi: https://www.developersumo.com/corsi/
Le nostre App su Play Store: https://play.google.com/store/apps/developer?id=Developer+Sumo

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Cos’è e come fare un Vlog

Se siete abituati ad usare la tecnologia è abbastanza probabile che siate giovani e che passiate molto tempo sui social e se...

Come usare e creare le classi in HTML

L'attributo class è utilizzato per assegnare ad un oggetto HTML una classe. Una delle caratteristiche principali delle classi HTML è che possono...

Lista compleanni personaggi Death Note

Death Note scritto da Tsugumi Ōba e illustrato da Takeshi Obata. È stato serializzato in Giappone dal 1º dicembre 2003 al 15...

Linguaggio di Programmazione di League of Legends

Se sei un appassionato di sviluppo informatico sicuramente ti sarai chiesto quale sia il linguaggi di programmazione di League of Legends. League...

Recent Comments