我是一个C新手,我试图做一个矩阵5x4只有0和9之间的数字,其中每个数字需要在那里2次(我试图制作记忆游戏)。我得到了这段代码,但我认为这是相当混乱的,它不起作用,所以我的问题是,我该如何改进我的代码,或者如何以不同的方式创建这个矩阵?C随机矩阵,数字介于0和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;
}
请先从格式化代码开始。 – MikeCAT
你介意解释“它不工作”吗?你期望什么,实际发生了什么?至少你应该包含'time.h'来使用'time()'函数。 – MikeCAT
MikeCAT im试图打印矩阵,但它只给了我的第一行。 从来没有用过time.h acc,我在没有它的情况下做出了主要思想:s –