Программа, типа жизни колонии: нужно сделать меньше отступы (или убрать их) - C (СИ)

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

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

Доброго времени суток. Есть программа, типа жизни колонии... Нужно как то сделать меньше отступы(или убрать их). Так же сменить 1 и 0 на что-то другое. Где это можно сделать? Можно ли как то ещё модифицировать программу? http://www.cyberforum.ru/attachment....1&d=1425469921
#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
 
int **inp_mtx(int);
void rand_mtx(int **, int, int);
void out_mtx(int, int **);
void f_out_mtx(FILE *, int, int **);
void main()
{
    int n, ch, ch1, a, b, i, j, x, it = 0;
    int alive = 0, neighbors = 0;
    int **coloniya;
    FILE *fptr;
    if ((fptr = fopen("rezult.txt", "w")) == NULL)
    {
        printf("\nNe mozhu vidkryty fajl");
        exit(1);
    }
    printf("Vvedit rozmir colonii\n");
    printf("rozmir = ");
    scanf("%d", &n);
    coloniya = inp_mtx(n);
    printf("--------------------------------------\n");
    printf("\nVvedit sposib zadannya kolonii:\n");
    printf("    Vruchnu - natysnit 1\n");
    printf("    Avtomatychno - natysnit 0\n");
    printf("Zrobit vybir [1/0]... ");
    scanf("%d", &ch);
    printf("--------------------------------------\n");
    if (!ch)
    {
        printf("\nVvedit bud-yake chyslo vid %d do %d: ", n + 10, n*n);
        scanf("%d", &x);
        rand_mtx(coloniya, n, x);
    }
    else
    {
        printf("\nVvedit pozycii, de budut znahodytys klityny\n");
        printf("(napryklad: 3 3, 7 1, 2 5...)\n");
        while (ch != 'n')
        {
            scanf("%d%d", &a, &b);
            coloniya[a][b] = 1;
            alive++;
            printf("continue? [y/n] ");
            ch = getchar();
            printf("\n");
        }
    }
    printf("--------------------------------------\n");
    printf("\nPochatkova koloniya\n");
    out_mtx(n, coloniya);
    printf("--------------------------------------\n\n");
    _getch();
    alive = 0;
    do
    {
        alive = 0;
        for (i = 1; i <= n; i++)
        {
            for (j = 1; j <= n; j++)
            {
                if (coloniya[i - 1][j] == 1)
                    neighbors++;
                if (coloniya[i - 1][j + 1] == 1)
                    neighbors++;
                if (coloniya[i][j + 1])
                    neighbors++;
                if (coloniya[i + 1][j + 1] == 1)
                    neighbors++;
                if (coloniya[i + 1][j])
                    neighbors++;
                if (coloniya[i + 1][j - 1] == 1)
                    neighbors++;
                if (coloniya[i][j - 1])
                    neighbors++;
                if (coloniya[i - 1][j - 1] == 1)
                    neighbors++;
                if (coloniya[i][j])
                {
                    if (neighbors <= 1)
                        coloniya[i][j] = 0;
                    if (neighbors>3)
                        coloniya[i][j] = 0;
                    if ((neighbors == 2) || (neighbors == 3))
                        coloniya[i][j] = 1;
                }
                else
                {
                    if (neighbors == 3)
                        coloniya[i][j] = 1;
                    else coloniya[i][j] = 0;
                }
                if (coloniya[i][j])
                    alive++;
                fprintf(fptr, "i=%d j=%d  neighbors=%d   alive=%d\n", i, j,
                    neighbors, alive);
                f_out_mtx(fptr, n, coloniya);
                neighbors = 0;
            }
        }
        it++;
        out_mtx(n, coloniya);
        printf("Iteraciya %d, kilkist zhyvyh klityn %d\n", it, alive);
        printf("--------------------------------------\n\n");
        fprintf(fptr, "Iteraciya %d, kilkist zhyvyh klityn %d\n", it, alive);
        fprintf(fptr, "--------------------------------------\n\n");
        ch1 = _getch();
        if (ch1 == 'e')
            break;
    } while (alive != 0);
    printf("Vyhid z programy\n");
    fclose(fptr);
}
 
/********************** Funkcii *******************************/
int **inp_mtx(int rozm)
{
    int i, **m;
    m = (int**)calloc((rozm + 2), sizeof(int*));
    for (i = 0; i<(rozm + 2); i++)
        m[i] = (int*)calloc((rozm + 2), sizeof(int));
    return m;
}
void out_mtx(int rozm, int **m)
{
    int i, j;
    for (i = 1; i <= rozm; i++)
    {
        for (j = 1; j <= rozm; j++)
            printf("%3d ", m[i][j]);
        printf("\n\n");
    }
    printf("\n");
}
void f_out_mtx(FILE *fp, int rozm, int **m)
{
    int i, j;
    for (i = 1; i <= rozm; i++)
    {
        for (j = 1; j <= rozm; j++)
            fprintf(fp, "%3d ", m[i][j]);
        fprintf(fp, "\n\n");
    }
    fprintf(fp, "\n");
}
void rand_mtx(int **mtx, int rozm, int max)
{
    int i;
    for (i = 0; i<max; i++)
        mtx[1 + rand() / (RAND_MAX / rozm)][1 + rand() / (RAND_MAX / rozm)] = 1;
}

Решение задачи: «Программа, типа жизни колонии: нужно сделать меньше отступы (или убрать их)»

textual
Листинг программы
printf("%c ", m[i][j]);

Объяснение кода листинга программы

В данном коде выполняется печать содержимого массива m, который представляет собой двумерный массив (матрицу). Печать происходит построчно, то есть сначала выводятся все элементы первой строки, затем все элементы второй строки и так далее. Каждый элемент массива представлен в виде символа, который выводится на экран через функцию printf. Между элементами массива и символами, обозначающими начало и конец строки, происходит обмен символами, который позволяет отображать массив в виде таблицы. В данном случае, чтобы отобразить массив, необходимо использовать два вложенных цикла. Первый цикл идет по строкам массива, а второй - по столбцам текущей строки. Номер элемента массива определяется с помощью индексов i и j. При этом индексы начинаются с 0, а не с 1. Таким образом, код выполняет печать символов из массива m, разделенных пробелами, с переходом на новую строку после каждого элемента.

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


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

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

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