Чтобы сгенерировать треугольную матрицу на языке программирования C, можно использовать различные методы. Вот несколько подходов:
Метод 1: использование двумерного массива
#include <stdio.h>
void generateTriangularMatrix(int n) {
int matrix[n][n];
int i, j;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
if (j >= i) {
matrix[i][j] = 1;
} else {
matrix[i][j] = 0;
}
}
}
// Print the triangular matrix
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
int main() {
int n;
printf("Enter the size of the matrix: ");
scanf("%d", &n);
generateTriangularMatrix(n);
return 0;
}
Метод 2: использование одномерного массива
#include <stdio.h>
void generateTriangularMatrix(int n) {
int matrix[n * (n + 1) / 2];
int i, j, k = 0;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
if (j >= i) {
matrix[k++] = 1;
} else {
matrix[k++] = 0;
}
}
}
// Print the triangular matrix
k = 0;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
if (j >= i) {
printf("%d ", matrix[k++]);
} else {
printf(" ");
}
}
printf("\n");
}
}
int main() {
int n;
printf("Enter the size of the matrix: ");
scanf("%d", &n);
generateTriangularMatrix(n);
return 0;
}
Метод 3. Использование динамического распределения памяти
#include <stdio.h>
#include <stdlib.h>
void generateTriangularMatrix(int n) {
int matrix = (int)malloc(n * sizeof(int*));
int i, j;
for (i = 0; i < n; i++) {
matrix[i] = (int*)malloc(n * sizeof(int));
for (j = 0; j < n; j++) {
if (j >= i) {
matrix[i][j] = 1;
} else {
matrix[i][j] = 0;
}
}
}
// Print the triangular matrix
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
// Free the dynamically allocated memory
for (i = 0; i < n; i++) {
free(matrix[i]);
}
free(matrix);
}
int main() {
int n;
printf("Enter the size of the matrix: ");
scanf("%d", &n);
generateTriangularMatrix(n);
return 0;
}