random walk로 총 이동수를 구하는 프로그램입니다
공부하시는데에 조그마한 도움이라도 됐으면좋겠습니다
코드확인해주세요!
더보기
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#define ROWS 20
#define COLS 20
int grid [ROWS][COLS];
int ro,co;
void mark_grid(int y, int x) {
if( x >= 0 && y >= 0 && y < ROWS && x < COLS ) {
ro = y;
co = x;
if( grid[y][x] == '.' )
grid[y][x]= ' *';
}
}
void print_grid() {
int r,c;
for ( r=0; r < ROWS; r++) {
for ( c=0;c< COLS;c++) {
printf("%c ",grid[r][c]);
}
printf("\n");
}
}
int main() {
int r,c;
int i;
char letters = '*';
for (r=0; r < ROWS; r++) {
for (c=0;c< COLS;c++) {
grid[r][c]='.';
}
}
srand((unsigned)time(NULL));
ro = ROWS/2;
co = COLS/2;
grid[ro][co]= letters;
for (i=0;i<100000; i++) {
int move = rand() % 8;
switch (move) {
case 0: mark_grid(ro+1, co);
break;
case 1: mark_grid(ro+1, co+1);
break;
case 2: mark_grid(ro, co+1);
break;
case 3: mark_grid(ro-1, co+1);
break;
case 4: mark_grid(ro-1, co);
break;
case 5: mark_grid(ro-1, co-1);
break;
case 6: mark_grid(ro, co-1);
break;
case 7: mark_grid(ro+1, co-1);
break;
}
print_grid();
if( getch() == 'q' ) break;
}
return 0;
}
더 많은 C언어 글이 궁금하다면?
https://chuinggun.tistory.com/category/C%EC%96%B8%EC%96%B4
'C언어' 카테고리의 다른 글
[C언어] 포인터 매개 변수를 사용하여 2개의 정수의 합과 차를 동시에 반환하는 함수를 작성하고 테스트하라. (0) | 2020.05.01 |
---|---|
[C언어] 에라스토스테네스의 체를 이용하여 2부터 100사이의 소수를 찾으시오 (0) | 2020.05.01 |
[C언어] 10진수를 2진수로 변환하여 출력하는 프로그램을 작성하시오 (0) | 2020.05.01 |
[C언어] 간단한 재고관리 시스템을 만드시오. 상품마다 상품번호가 붙어있고 상품 번호를 사용자가 입력하면 물품이 어디있는지를 알려주는 번호를 출력합니다. (0) | 2020.05.01 |
[C언어] 벡터의 내적(dot product)를 계산하는 함수 vector_dot_prod()를 작성하시오 (0) | 2020.05.01 |
댓글