Заполнение двумерного массива звёздочками. - C (СИ)

Узнай цену своей работы

Формулировка задачи:

#include <stdio.h>
#include <conio.h>
 
const int N=10;
const int K=15;
 
int main()
{
    char A[N][K];
    for(int i=0; i<N; ++i)
        for(int j=0; j<K; ++j)
            A[i][j]='*';
    for(int i=0; i<N; ++i)
    {
        for(int j=0; j<K; ++j)
            printf("%d",A[i][j]);
        printf("\n");
    }
    getch();
    return 0;
}
почему на экран выводятся числа 42?

Решение задачи: «Заполнение двумерного массива звёздочками.»

textual
Листинг программы
while(1){
                print(array, h, w);
                usleep(200000);
                next(array, h, w);
        }
        return 0;
}
 
 
void print(char array[][10], int h, int w){
        //char *ptr = array;
        int i, j;
        for (i=0; i<h; ++i) {
                for (j=0; j<w; ++j)
                        //printf("%c", *(ptr+i*w+j));
                        printf("%c" , array[i][j]);
                putchar('\n');
        }
}
 
char next(char array[][10], int h, int w){
        int a, b;
        int count = 0;
        char *ptr2 = array;
        char array2[a][b];
        int i, j;
        for(i=0; i<h; i++){
                for(j=0; j<w; j++){
                        array2[a][b]=array[i][j];
                        array[i][j] = ' ';
                }
        }
 
        for(a=0; a<h; a++){
                for(b=0; b<w; b++){
                        if(array2[(a-1+h)%h][b] == 'x')
                                count++;
                        else if(array2[a][(b-1+w)%w] == 'x')
                                count++;
                        else if(array2[(a-1+h)%h][(b-1+w)%w] == 'x')
                                count++;
                        else if(array2[(a+1+h)%h][b] == 'x')
                                count++;
                        else if(array2[a][(b+1+w)%w] == 'x')
                                count++;
                        else if(array2[(a+1+h)%h][(b+1+w)%w] == 'x')
                                count++;
                        else if(array2[(a+1+h)%h][(b-1+w)%w] == 'x')
                                count++;
                        else if (array2[(a-1+h)%h][(b+1+w)%w] == 'x')
                                count++;
                        else if(count < 2 || count > 3)
                                array[a][b] = ' ';
                        else if(count == 3)
                                array[a][b] = 'x';
                        else if(count == 2 || count == 3)
                                array[a][b] = 'x';
                }
        }
        return(array[a][b]);
 
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5
Похожие ответы