Domanda (Esercizio7)

Ho svolto l'esercizio e il programma funziona, vi è un piccolo problema che nn riesco a risolvere nella stampa dei valori dei vettori la cui somma è x.

Il programma ignora il quarto elemento (in ordine di stampa) e stampa zero, mentre stampa il valore di v[j ] al posto di x. cioè risulta:

v[i]+v[j] =  valore v[i] + 0 = valore v[j]

al posto di

v[i]+v[j] =  valore v[i] + valore v[j] = x

La frazione di codice a cui faccio riferimento è alla riga 38. (penultimo if)

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

#define N 1000
int main()
{
	long long int v[N]={0};
	int i=0;		//variabile decisionale per il riempimento
	int n=0; 		//dimensione vettore
	int x=0;		// valore da cercare
	int yes=0;		//flag per sapere se è stato trovata almeno una coppia

	/************************************************************************
	*			RIEMPIMENTO VETTORE			        *
	************************************************************************/
	printf("Inserisci dimensione del vettoren");
	scanf("%d",&n);
	printf("digita:t1 per inserimento da inputt2 per inserimento automatico casualen");
	scanf("%d",&i);

	srand(time(NULL));

	if (i==1) 	for (int j=0; j<n; j++)  scanf("%d",&v[j]);	//inserimento manuale
	else 		for (int j=0; j<n; j++)	 v[j]=rand();		//inserimento automatico

	for( int j=0; j<n; j++)	 printf("v[%d] = %dn",j+1,v[j]);	//stampa vettore

	/************************************************************************
	*				RICERCA					*
	************************************************************************/
	printf("ninserisci un valore compreso tra 0 e %dn",RAND_MAX);
	scanf("%d",&x);

	for(int j=0; j<n; j++)
		for(int k=j+1; k<n; k++)
			if(v[j]+v[k]==x) {printf("nv[%d]+ v[%d] = %d + %d = %d n",j+1,k+1,v[j],v[k],x); yes=1;}

	if(yes==0) printf("n non ci sono valori nel vettore la cui somma sia uguale e %dn",x);

	return 0;
}

Sudoku

Ho scritto un codice che risolva uno dato schema di sudoku ma il programma  gira sempre senza dare soluzione e senza andare in crash perchè ha disponibilità di memoria .

Non so in che modo controllare la solve che è la funzione principale. La solve è basata  su inserimenti consecutivi di valori  in ogni cella libera che soddisfano le regole del sudoku e quindi è uno schema risolutivo "poco intelligente"e sicuramente molto oneroso per il sistema.

il codice  è incompleto perchè manca la funzione per poter inserire  uno schema di sudoku da file ma è un aspetto secondario  perchè  ho fissatoo a priori una configurazione iniziale della matrice. Continua a leggere