如何在C中提供数组作为输入?

问题描述 投票:0回答:1
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define SIZE 10
#define ROW 10
#define COL 10


char grid[ROW][COL+1] = 
    {
        "--IHH---I-",
        "-H--------",
        "----------",
        "----H-----",
        "----IH----",
        "----H-----",
        "----H-----",
        "-H--------",
        "---------I",
        "-HI--H---I",
    };



void nextState() {

    char tmpGrid[SIZE][SIZE+1];
    int i , j;

    for(i=0; i<SIZE; i++) {
        for(j=0; j<SIZE; j++) {
            tmpGrid[i][j] = grid[i][j];
        }
    }
for(i=0; i<SIZE; i++) {
        for(j=0; j<SIZE; j++) {
            if(tmpGrid[i][j] == 'I') {
                if(i > 0 && tmpGrid[i-1][j] != '-') {
                    grid[i-1][j] = 'I';
                }
                if(j > 0 && tmpGrid[i][j-1] != '-') {
                    grid[i][j-1] = 'I';
                }
                if(i < (SIZE - 1) && tmpGrid[i+1][j] != '-') {
                    grid[i+1][j] = 'I';
                }
                if(j < (SIZE - 1) && tmpGrid[i][j+1] != '-') {
                    grid[i][j+1] = 'I';
                }
            }
        }
    }
}


void printGrid() {
    int i , j;
    for(i=0; i<SIZE; i++) {
        for(j=0; j<SIZE; j++) {
            printf("%c ", grid[i][j]);
        }
        printf("\n");
    }
    printf("\n\n");
}


int main() {

    int n,sayac;
    sayac = 0;

    scanf("%d", &n);

    while(sayac != n) {

        nextState();
        sayac++;
    }

    printGrid();

    return 0;
}

我正在尝试提供一个字符串数组作为输入,以使其成为一种算法,在该算法中,“ H”(健康)在每次迭代中均被“ I”(感染)感染,但不知道如何执行。我怎样才能复制粘贴一个数组,例如;

-IHH --- I-

-H --------

---- H --------- IH ---- - - H - - - - - H - - --H - - - - - - - - -一世-HI--H --- I

谢谢!

c
1个回答
0
投票

要读取数组,您需要创建一个循环并扫描值-

© www.soinside.com 2019 - 2024. All rights reserved.