Alguem pode ajudar a arrumar esse loop eterno de numeros ?
e se possivel da uma força do porque ele da o resultado mesmo sem ter todos os números
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(){
srand(time(NULL));
int sorteio = 0;
int ponto = 0;
int p1 = 0;
int p2 = 0;
int c1[4][4], c2[4][4],i, j;
for(i = 0;i < 4; i++ ){
for(j = 0; j < 4; j++){
c1[j] = rand()%50+1;
c2[j] = rand()%50+1;
}
}
for(i = 0;i < 4; i++ ){
for(j = 0; j < 4; j++){
printf("%.2i ",c1[j]);
}
printf("\n");
}
printf("\n");
for(i = 0;i < 4; i++ ){
for(j = 0; j < 4; j++){
printf("%.2i ",c2[j]);
}
printf("\n");
}
printf("\n");
sorteio = rand() %50+1;
printf ("%.2i ", sorteio);
printf("\n");
while (p1 != 16 || p2 != 16){
for(i = 0;i < 4; i++ ){
for(j = 0; j < 4; j++){
if (c1[j] == sorteio){
p1++;
}
}
}
for(i = 0;i < 4; i++ ){
for(j = 0; j < 4; j++){
if (c2[j] == sorteio){
p2++;
}
}
}
sorteio = rand() %50+1;
printf ("%.2i ", sorteio);
}
if (p1 == 16){
printf("\nBingo! Jogador 1 ganhou");
}
if (p2 == 16){
printf("\nBingo! Jogador 2 ganhou");
}
return 0;
}