Ich bin ein C Neuling und ich versuche, eine Matrix 5x4 nur mit Zahlen zwischen 0 und 9 zu machen, wo jede Zahl 2 mal da sein muss (ich versuche es Mach das Memory-Spiel). Ich habe diesen Code, aber ich denke, das ist ein ziemliches Durcheinander und es funktioniert nicht, also meine Frage ist, wie kann ich meinen Code verbessern oder wie kann ich diese Matrix auf eine andere Weise machen?C zufällige Matrix mit Zahlen zwischen 0 und 9
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define MaxC 4
#define MaxL 5
int main(){
int n1=0, n2=0, n3=0, n4=0, n5=0, n6=0, n7=0, n8=0, n9=0, n0=0;
int i=0,j=0,r;
int n[MaxL][MaxC];
srand(time(NULL));
while(i<5){
j=0;
while(j<4){
r=(rand()%10);
if(r==0 && n0<2){
n0++;
j++;
n[i][j]=r;
printf(" %3d ",n[i][j]);
}
if(r==1 && n1<2){
n1++;
j++;
n[i][j]=r;
printf(" %3d ",n[i][j]);
}
if(r==2 && n2<2){
n2++;
j++;
n[i][j]=r;
printf(" %3d ",n[i][j]);
}
if(r==3 && n3<2){
n3++;
j++;
n[i][j]=r;
printf(" %3d ",n[i][j]);
}
if(r==4 && n4<2){
n4++;
j++;
n[i][j]=r;
printf(" %3d ",n[i][j]);
}
if(r==5 && n5<2){
n5++;
j++;
n[i][j]=r;
printf(" %3d ",n[i][j]);
}
if(r==6 && n6<2){
n6++;
j++;
n[i][j]=r;
printf(" %3d ",n[i][j]);
}
if(r==7 && n7<2){
n7++;
j++;
n[i][j]=r;
printf(" %3d ",n[i][j]);
}
if(r==8 && n8<2){
n8++;
j++;
n[i][j]=r;
printf(" %3d ",n[i][j]);
}
if(r==9 && n9<2){
n9++;
j++;
n[i][j]=r;
printf(" %3d ",n[i][j]);
}
}
i++;
}
return 0;
}
Beginnen Sie mit der korrekten Formatierung Ihres Codes. – MikeCAT
Würde es Ihnen etwas ausmachen, "es funktioniert nicht" zu erklären? Was erwartest du und was passiert eigentlich? Zumindest sollten Sie 'time.h' verwenden, um die' time() 'Funktion zu benutzen. – MikeCAT
MikeCAT ich versuche, die Matrix zu drucken, aber es gibt mir nur die erste Zeile. nutzte nie die time.h acc, ich machte Master Mind ohne es: s –