2016-10-17 3 views
0
this code is supposed to be a person walking to right in a 4x4 array filled with '*'. for example: if the person walks to the right R ,row zero and walks one step it would look like this: 
    O * * * 
    * * * * 
    * * * * 
    * * * * 
or row one, walks two steps 
    * * * * 
    * O * * 
    * * * * 
    * * * * 
row three, walks four steps 
* * * * 
* * * * 
* * * * 
* * * O 

это оригинальный код:значения Pass, используя функцию

#include <stdio.h> 

    int main() 
    { 
    int i,k, c, f; 
char z; 

char a[4][4] = { {'*','*','*','*'}, {'*','*','*','*'}, {'*','*','*','*'}, {'*','*','*','*'}}; 

    printf("Walking to the right\n"); 
    z=getchar(); 

     // modified array goes here [] 

    if(z=='R') 
    { 
     printf("Row\n"); 
      scanf("%d",&c); 

     printf("Steps"); 
      scanf("%d",&f); 
       a[c][f]='O'; 

     for (i = 0; i < 4; i++) { 

    for (k = 0; k < 4; k++) { 
    printf("%c ", a[i][k]); 
    } 
    printf("\n"); 
    } 
    } 
    return ; 
} 

Я хотел бы иметь значения для R, строки и передаются шаги, используя функцию Int главной, где выше только массив распечатаны.

Я попытался что-то сделать, но я не знаю, с чего начать. :/

#include <stdio.h> 
void print(char); 

int main() 
{ 




char a[4][4] = { {'*','*','*','*'}, {'*','*','*','*'},  {'*','*','*','*'}, {'*','*','*','*'}}; 


    printf("From the right\n"); 
    z=getchar(); 


     // modified array goes here [] 


    void print(char z){ 
int i,k; 
int c, f; 


    if(z=='R') 
    { 
     printf("Row\n"); 
      scanf("%d",&c); 


     printf("Steps"); 
      scanf("%d",&f); 
       a[c][f]='O'; 


     for (i = 0; i < 4; i++) { 


    for (k = 0; k < 4; k++) { 
    printf("%c ", a[i][k]); 
    } 
    printf("\n"); 
} 
    } 
    return ; 
} 

#include <stdio.h> 

int main() 
{ 


int i,k,x,c,f; 

char z; 
char a[4][4] = { {'*','*','*','*'}, {'*','*','*','*'},{'*','*','*','*'}, {'*','*','*','*'}}; 


    printf("From the right\n"); 
    z=getchar(); 




    printf("Row\n"); 
    scanf("%d",&c); 


    if(z=='R') 
    { 
     printf("Steps"); 
     scanf("%d",&f); 
     a[c][f]='G'; 


     for (i = 0; i < 4; i++) { 


    for (k = 0; k < 4; k++) { 
    printf("%c ", a[i][k]); 
    } 
    printf("\n"); 
    } 
    } 
    return 0; 
    } 

Буду признателен за любые предложения. Благодарю.

ответ

0

Неясная однако смотреть на это:

void getCommand(char &z) { 
    printf("Walking to the right\n"); 
    z = getchar(); 
} 

void getRowAndSteps(char z, int &c, int &f) { 
    if (z == 'R') 
    { 
     printf("Row\n"); 
     scanf("%d", &c); 

     printf("Steps"); 
     scanf("%d", &f); 
    }//else... 
} 

void print(char a[][4]) { 
    for (size_t i = 0; i < 4; i++) { 
     for (size_t k = 0; k < 4; k++) { 
      printf("%c ", a[i][k]); 
     } 
     printf("\n"); 
    } 
} 

int main() 
{ 
    int c, f; 
    char z; 

    char a[4][4] = { { '*','*','*','*' },{ '*','*','*','*' },{ '*','*','*','*' },{ '*','*','*','*' } }; 



    getCommand(z); 
    getRowAndSteps(z, c, f); 
    a[c][f] = 'O'; 

    //maybe some cycle here for each step ?? 
    print(a); 

    return 0; 
} 

или:

int main(int argc, char * argv[]) 
{ 
    if (argc != 4) { 
     printf("Usage: .exe side row steps"); 
     return 0; 
    } 

    int c = atoi(argv[2]), f = atoi(argv[3]); 
    char z = argv[1][0]; 

    char a[4][4] = { { '*','*','*','*' },{ '*','*','*','*' },{ '*','*','*','*' },{ '*','*','*','*' } }; 

    a[c][f] = 'O'; 

    //maybe some cycle here for each step ?? 
    print(a); 

    return 0; 
} 

непроверенную, надеюсь, это поможет вам

Смежные вопросы