Untitled

mail@pastecode.io avatarunknown
c_cpp
2 months ago
1.9 kB
1
Indexable
Never
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
// дан квадратный массив размером 6 х 6, который хранится в ивде одномерного массива
// записать в текстовый файл в одну строку главную и побочную диагонали массива

// отсортировать главную диагональ массива по взрастанию свреху вниз
// 1 2 3 [4]
// 5 6 [7] 8
// 9 [0] 1 -1
// [4] 7 8 2
// 1  2  3  4    5  6  7  8     9  0  1  -1     4  7  8  2

/*void MainMatr(const int *arr, const int n){
int i, j;
for (i = 0; i < n; i++)
   for (j = 0; j < n; j++)
   if (i == j)
   fprintf(fout, "%d", arr[i * n + j])*/

void FillArr(int *arr,  const int size) {
    int i;
    const int n = size * size;
    for (i = 0; i < n; i++ )
        arr[i] = rand() % 11 - 5;
}

void PrintArr(int *arr, const int size) {
    int i,j;
    for (i = 0; i < size; i ++) {
        for (j = 0; j < size; j++)
            printf("%5d", arr[i * size + j]);
        puts("");
    }
}

int main() {

    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    srand(time(0));


    FILE* fout = fopen( "out.txt", "w" );

    if( fout == NULL ) {
        puts("Не удалось открыть файл на запись!");
        return 1;
    }
    const int size = 4;
    const int n = size * size;
    int arr[n];

    FillArr(arr, size); // имя массива - это указатель на первый элемент
    PrintArr(arr, size);

    int i;
    for (i = 0; i < n; i = i + 5)
        fprintf(fout, "%d", arr[i]);


    for (i = size -1 ; i < n-1; i = i + 3)
        fprintf(fout, "%d", arr[i]);


    fclose(fout);
    return 0;
}