#include
#include
#include
#include
int main() {
setlocale(LC_ALL, "rus");
int arr[10][10];
int i, j;
int min_i;
int min_j;
printf("\nИсходный массив: \n");
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
arr[i][j] = rand() % 10;
printf("%d ", arr[i][j]);
}
printf("\n");
}
min_i = 0;
min_j = 0;
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
if (arr[i][j] < arr[min_i][min_j]) {
min_i = i;
min_j = j;
}
}
}
for (i = 0; i < 10; i++) {
for (j = min_j; j < 10 - 1; j++) {
arr[i][j] = arr[i][j + 1];
}
}
for (i = min_i; i < 10 - 1; i++) {
for (j = 0; j < 10 - 1; j++) {
arr[i][j] = arr[i + 1][j];
}
}
printf("\nРезультат: \n");
for (i = 0; i < 10 - 1; i++) {
for (j = 0; j < 10 - 1; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
Составьте программу удаления строки и столбца, содержащего максимальный элемент матрицы A (N, N).
C/C++
Помогите исправить программу на языке СИ, работает коряво.
У тебя в задании "максимальный", а ты ищешь "минимальный". Для "максимальный" должно быть:
if (arr[i][j] > arr[max_i][max_j]) {
Удаление строки min_i и столбца min_j:
for (int i = 0, m = 0; i < 10; i++) {
if (i == min_i) { continue; }
for (int j = 0; n = 0; j < 10; j++) {
if (j != min_j) { arr[m][n++] = arr[i][j]; }
}
m++;
}
if (arr[i][j] > arr[max_i][max_j]) {
Удаление строки min_i и столбца min_j:
for (int i = 0, m = 0; i < 10; i++) {
if (i == min_i) { continue; }
for (int j = 0; n = 0; j < 10; j++) {
if (j != min_j) { arr[m][n++] = arr[i][j]; }
}
m++;
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
int main()
{
int N,maxi,maxj,max=-1;
/*размер матрицы: */
printf("\nMatrix dimension = ");
scanf("%d",&N);
int **A = (int**)malloc(N * sizeof(int*));
for (int i = 0; i < N; i++)
A[i] = (int*)malloc(N * sizeof(int));
/* заполнение матрицы случайными значениями: */
srand(time(NULL));
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
A[i][j] = rand() % 100;
/*вывод первого результата: */
printf("\nMatrix A:\n");
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
printf("%2d ", A[i][j]);
if(max<A[i][j])
{max=A[i][j];maxi=i;maxj=j;}
}
printf("\n");
}
printf("\nMaxElement=A[%d][%d]=%d",maxi,maxj,max);
for(int i=0;i<N;i++)
for(int j=maxj;j<N-1;j++)
A[i][j]=A[i][j+1];
for(int i=maxi;i<N-1;i++)
for(int j=0;j<N;j++)
A[i][j]=A[i+1][j];
realloc(*A,--N);
printf("\n\nResult Matrix A:\n");
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
printf("%2d ", A[i][j]);
printf("\n");
}
for (int i = 0; i < N; i++)
free(A[i]);
free(A);
fflush(stdout);
sleep(10);
return 0;
}

#include <stdlib.h>
#include <time.h>
#include <unistd.h>
int main()
{
int N,maxi,maxj,max=-1;
/*размер матрицы: */
printf("\nMatrix dimension = ");
scanf("%d",&N);
int **A = (int**)malloc(N * sizeof(int*));
for (int i = 0; i < N; i++)
A[i] = (int*)malloc(N * sizeof(int));
/* заполнение матрицы случайными значениями: */
srand(time(NULL));
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
A[i][j] = rand() % 100;
/*вывод первого результата: */
printf("\nMatrix A:\n");
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
printf("%2d ", A[i][j]);
if(max<A[i][j])
{max=A[i][j];maxi=i;maxj=j;}
}
printf("\n");
}
printf("\nMaxElement=A[%d][%d]=%d",maxi,maxj,max);
for(int i=0;i<N;i++)
for(int j=maxj;j<N-1;j++)
A[i][j]=A[i][j+1];
for(int i=maxi;i<N-1;i++)
for(int j=0;j<N;j++)
A[i][j]=A[i+1][j];
realloc(*A,--N);
printf("\n\nResult Matrix A:\n");
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
printf("%2d ", A[i][j]);
printf("\n");
}
for (int i = 0; i < N; i++)
free(A[i]);
free(A);
fflush(stdout);
sleep(10);
return 0;
}

Похожие вопросы
- Помогите с программой на языке Си
- Помогите написать программу на языке Си
- Написать программу на языке Си
- Написать программу на языке Си, которая решит эту задачу:
- Помогите пожалуйста решить программу на языке СИ!!!
- Помогите с задачей на языке СИ
- Помогите, пожалуйста, написать программу на языке Си.
- Помогите исправить программу на С++
- Написать программу в языке Си, которая с помощью указателей на функцию выполняет задание
- Программа в языке Си