C 整型变量在';这是不应该的
我不知道这里发生了什么。我正在做的一个项目是2048游戏。我正在用c语言编程。问题是,我最初宣布分数为0,但尚未实施评分系统,但随机更改为4?(我已经打印出来了) 以下是我的部分代码:C 整型变量在';这是不应该的,c,unix,integer,C,Unix,Integer,我不知道这里发生了什么。我正在做的一个项目是2048游戏。我正在用c语言编程。问题是,我最初宣布分数为0,但尚未实施评分系统,但随机更改为4?(我已经打印出来了) 以下是我的部分代码: for(;;){ printf("Score: %d",user_score); rand_i=rand()%(board_size+1); rand_j=rand()%(board_size+1); while(M[rand_i][rand_j]!=0){
for(;;){
printf("Score: %d",user_score);
rand_i=rand()%(board_size+1);
rand_j=rand()%(board_size+1);
while(M[rand_i][rand_j]!=0){
rand_i=rand()%(board_size+1);
rand_j=rand()%(board_size+1);
}
rand_num= rand()%2*2+2;
M[rand_i][rand_j]=(rand_num);
for(i=0;i<board_size;i++){
printf("\n");
for(j=0;j<board_size;j++){
if (M[i][j]==0){
printf("[ ]");
}
else printf("[%4d]",M[i][j]);
}
}
printf("\n(w=up, a=left, s=down, d=right, q=quit) > ");
scanf("%c%c",&user_input);
//system("clear");
switch(user_input){
case 'w':
for(j=0;j<board_size;j++){
for(i=0;i<board_size;i++){
if(M[i][j]!=0 && i!=0){
for(k=i;k>0;k--){
if(M[k-1][j]==0){
M[k-1][j]=M[k][j];
M[k][j]=0;
(;;)的{
printf(“分数:%d”,用户分数);
rand_i=rand()%(电路板尺寸+1);
rand_j=rand()%(电路板尺寸+1);
而(M[rand_i][rand_j]!=0){
rand_i=rand()%(电路板尺寸+1);
rand_j=rand()%(电路板尺寸+1);
}
rand_num=rand()%2*2+2;
M[rand_i][rand_j]=(rand_num);
对于(i=0;i我认为你写的是数组M以外的内容
rand_i=rand()%(board_size+1);
rand_j=rand()%(board_size+1);
如果M被声明为int M[board_size][board_size],则rand_i和rand_j可能太大
希望这些有帮助。当它们不应该听起来像是在数组中写下了一个数组,从而改变了它们的值,从而在别处破坏数据。你应该在UNIX下运行,所以你应该考虑通过ValGRAND运行你的程序,这将告诉你这些错误。(board_size+1)
,其中,rand_i'可能最终为
baord_size`,这是board size之外的一个项目。NC,数组索引从0到,但不包括数组大小。