我的程序只打印“ddddddddd”而不是地图?

时间:2015-01-04 20:32:05

标签: c

我的代码在粘贴箱上,并将永久存在。我的程序的问题是,当我尝试加载它时,只需打印dddddddddddd即可。试着帮我修复它。这应该打印出所有的线条以形成地图。

int main() {

    TEST_LEVEL();    
    LOAD_LEVEL();

    return 0;

}


char  inttorow(int number);

//global
char * R1[81] ;
char * R2[81] ;
char * R3[81] ;
char * R4[81] ;
char * R5[81] ;
char * R6[81] ;
char * R7[81] ;
char * R8[81] ;
char * R9[81] ;
char * R10[81] ;
char * R11[81] ;
char * R12[81] ;
char * R13[81] ;
char * R14[81] ;
char * R15[81] ;
char * R16[81] ;
char * R17[81] ;
char * R18[81] ;
char * R19[81] ;
char * R20[81] ;
char * R21[81] ;
char * R22[81] ;
char * R23[81] ;
char * R24[81] ;
char * R25[81] ;
int character;
int spawn[2];
int door1[2];
int door2[2];
int door3[2];
int door4[2];


//maps
void TEST_LEVEL(){    

 *R1="################################################################################";
 *R2="#                                                                              #";
 *R3="#                                                                              #";
 *R4="#                                                                              #";
 *R5="#                                                                              #";
 *R6="#                                                                              #";
 *R7="#                                                                              #";
 *R8="#                                                                              #";
 *R9="#                                                                               #";
*R10="                                                                               #";
*R11="#                                                                               #";
*R12="#                                                                              #";
*R13="#                                                                              #";
*R14="#                                                                              #";
*R15="#                                                                              #";
*R16="#                                                                              #";
*R17="#                                                                              #";
*R18="#                                                                              #";
*R19="#                                                                              #";
*R20="#                                                                              #";
*R21="#                                                                              #";
*R22="#                                                                              #";
*R23="#                                                                              #";
*R24="#                                                                              #";
*R25="################################################################################";

 spawn[1] = 15;
 spawn[2] = 15;


return;


  }


//movement


//tools
void LOAD_LEVEL(){
  char * row[81];
  int i = 1;
while(i != 25){
  *row =  inttorow(i);
   printf("%s\n", row);
    i++;

}


return;

}


char  inttorow(int number){
   char * row[81];

    switch(number){

     case 1 :
        *row = R1;
        break;

        case 2 :
        *row = R2;
        break;
        case 3 :
        *row = R3;
        break;
        case 4 :
        *row = R4;
        break;
        case 5 :
        *row = R5;
        break;
        case 6 :
        *row = R6;
        break;
        case 7 :
        *row = R7;
        break;
        case 8 :
        *row = R8;
        break;
        case 9 :
        *row = R9;
        break;
        case 10 :
        *row = R10;
        break;
        case 11 :
        *row = R11;
        break;
        case 12 :
        *row = R12;
        break;
        case 13 :
        *row = R13;
        break;
        case 14 :
        *row = R14;
        break;
        case 15 :
        *row = R15;
        break;
        case 16 :
        *row = R16;
        break;
        case 17 :
        *row = R17;
        break;
        case 18 :
        *row = R18;
        break;
        case 19 :
        *row = R19;
        break;
        case 20 :
        *row = R20;
        break;
        case 21 :
        *row = R21;
        break;
       case 22 :
        *row = R22;
        break;
        case 23 :
        *row = R23;
        break;
        case 24 :
        *row = R24;
        break;
        case 25 :
        *row = R25;
        break;

    }

return row;
}

2 个答案:

答案 0 :(得分:0)

问题出在switch case部分,或者是函数调用结束后变量的浪费。尝试将它们变成更小的数组并使用更多来进行循环。要打印,请使用索引来使用%c。

答案 1 :(得分:0)

你破了

int spawn[2];

通过索引:

spawn[1] = 15;
spawn[2] = 15;

此外,函数char inttorow(int number)正在尝试返回char **而不是char以及返回值是本地变量。

char inttorow(int number){
    char * row[81];
    ...
    return row;
}

我希望您启用编译器警告。