Ragazzi innanzitutto buonasera, e scusate il disturbo..
Sono davvero in difficoltà e non riesco a completare questo almeno in apparenza semplice programma.
Sono riuscito ad arrivare fino a questo punto, mi aiutate?
Devo inserire credo l'ultima condizione per far si che i numeri non si ripetano.
Avendo studiato tutto il programma teorico non riesco bene ad applicare dei concetti del linguaggio c pur conoscendo la teoria.
Grazie di cuore. Ecco la traccia:
Si vuole sviluppare un programma per verificare se da un array di 5 interi generati a caso
([6, 14, 15, 3, 13] in figura) è possibile costruire un triangolo. Si suppone di avere 15
numeri consecutivi da 1 a 15. Il gioco richiede che ogni carta sia la differenza tra le due
carte che le stanno immediatamente sotto, a sinistra e a destra. Un esempio è il seguente:
5
4 9
7 11 2
8 1 12 10
6 14 15 3 13
Effettuare almeno 5 simulazioni generando dei numeri interi casuali.
Questo è il punto in cui sono arrivato e mi sono bloccato.
Triangolo di carte
#include<stdio.h>
#include<stdlib.h>
void visualizza_array_a(int a[5], int n);
void visualizza_array_b(int b[5][5], int rig, int col);
void main()
{
int numeri[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
srand(time(NULL));
int t;
printf("Numeri: ");
for(t=0; t<15; t++)
{printf("%3d", numeri[t]);}
printf("\n\n");
int a[5], z;
printf("Array A pseudo-random di partenza in ultima fila: ");
for(z=0; z<5; z++)
{a[z]=1+rand()%15;}
visualizza_array_a(a,5);
int b[5][5];
printf("\n\n\n\n");
int v;
for(v=0; v<5; v++)
{b[4][v]=a[v];}
int colonna, riga;
for(riga=3; riga>=0; --riga)
{ for(colonna=4; colonna>=0; --colonna)
{
b[riga][colonna-1]=b[riga+1][colonna]-b[riga+1][colonna-1];
if(b[riga][colonna-1]<0)
b[riga][colonna-1]=b[riga][colonna-1]*-1;}
}
printf("\n\n\n");
visualizza_array_b(b,5,5);
}
void visualizza_array_a(int a[5], int n)
{
int i;
for(i=0; i<5; i++)
printf("%3d", a[i]);
}
/*La piramide la visualizzo a forma di triangolo equilatero, nell'anteprima non risulta ma la function visualizza è scritta in modo corretto*/
void visualizza_array_b(int b[5][5], int rig, int col)
{
for(rig=0; rig<5; rig++)
{
for(col=5; col>rig; --col)
{printf(" ");}
for(col=0; col<=rig; col++)
printf(" %3d ", b[rig][col]);
printf("\n\n\n");
}
}