C/C++
Составьте программу удаления столбца, содержащего максимальный элемент матрицы A[N][N] НА ЯЗЫКЕ СИ
Составьте программу удаления столбца, содержащего максимальный элемент матрицы A[N][N]
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
#define N 5
void swap(int* a, int* b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
void shift(int* beg, int* end) {
while (beg + 1 != end) {
swap(beg, beg + 1);
++beg;
}
}
int main(void) {
int a = 10, b = 99;
int mx = a;
int r = -1, c = -1;
int matrix[N][N];
int cols = N;
int i, j;
srand((unsigned)time(NULL));
for (i = 0; i < N; ++i) {
for (j = 0; j < N; ++j) {
matrix[i][j] = RAND(a, b);
}
}
for (i = 0; i < N; ++i) {
for (j = 0; j < N; ++j) printf("%3i", matrix[i][j]);
puts("");
}
puts("");
for (i = 0; i < N; ++i) {
for (j = 0; j < N; ++j) {
if (matrix[i][j] > mx) {
mx = matrix[i][j];
r = i;
c = j;
}
}
}
printf("Max = %i\nElement: matrix[%i][%i]\n\n", mx, r, c);
for (i = 0; i < N; ++i) shift(matrix[i] + c, matrix[i] + N);
--cols;
for (i = 0; i < N; ++i) {
for (j = 0; j < cols; ++j) printf("%3i", matrix[i][j]);
puts("");
}
return 0;
}
#include <stdio.h>
#include <time.h>
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
#define N 5
void swap(int* a, int* b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
void shift(int* beg, int* end) {
while (beg + 1 != end) {
swap(beg, beg + 1);
++beg;
}
}
int main(void) {
int a = 10, b = 99;
int mx = a;
int r = -1, c = -1;
int matrix[N][N];
int cols = N;
int i, j;
srand((unsigned)time(NULL));
for (i = 0; i < N; ++i) {
for (j = 0; j < N; ++j) {
matrix[i][j] = RAND(a, b);
}
}
for (i = 0; i < N; ++i) {
for (j = 0; j < N; ++j) printf("%3i", matrix[i][j]);
puts("");
}
puts("");
for (i = 0; i < N; ++i) {
for (j = 0; j < N; ++j) {
if (matrix[i][j] > mx) {
mx = matrix[i][j];
r = i;
c = j;
}
}
}
printf("Max = %i\nElement: matrix[%i][%i]\n\n", mx, r, c);
for (i = 0; i < N; ++i) shift(matrix[i] + c, matrix[i] + N);
--cols;
for (i = 0; i < N; ++i) {
for (j = 0; j < cols; ++j) printf("%3i", matrix[i][j]);
puts("");
}
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<unistd.h>
#define MAX 50;
int main()
{
int **matrix, N, Max=-1, MaxCol=-1;
printf("Enter size of Matrix[N][N]");
printf("\nEnter N = ");
scanf("%d",&N);
matrix=(int**)malloc(N*sizeof(int*));
if(matrix)
{
for(int i = 0; i < N; i++)
{//for i
matrix[i]=(int*)malloc(N*sizeof(int));
if(!matrix[i])
{//if
printf("\nError. Column not created.");
exit(1);
}//if
}//for i
srand(time(NULL));
printf("\nMatrix[%d][%d]:\n",N,N);
for(int i = 0; i < N; i++)
{//for i
for(int j = 0; j < N; j++)
{//for j
matrix[i][j]=rand()%MAX;
if(matrix[i][j]>Max)
{Max=matrix[i][j]; MaxCol=j;};
printf("%3d ",matrix[i][j]);
}//for j
printf("\n");
}//for i
printf("\nMaximum digit = %d\nColumn with maximum digit = %d",Max,MaxCol+1);
//сдвигаем столбцы на место
//удаляемого столбца:
for(int i = 0; i < N; i++)
for(int j = MaxCol; j < N-1; j++)
matrix[i][j]=matrix[i][j+1];
//уменьшаем кол-во столбцов:
realloc(*matrix, N-1);
printf("\n\nResult Matrix:\n");
for(int i = 0; i < N; i++)
{
for(int j = 0; j < N-1; j++)
{
printf("%3d ",matrix[i][j]);
} printf("\n");
}
for(int i = 0; i < N; i++)
free(matrix[i]);
free(matrix);
}
else
printf("\nError. Matrix not created.");
fflush(stdout);
sleep(10);
return 0;
}
#include<stdlib.h>
#include<time.h>
#include<unistd.h>
#define MAX 50;
int main()
{
int **matrix, N, Max=-1, MaxCol=-1;
printf("Enter size of Matrix[N][N]");
printf("\nEnter N = ");
scanf("%d",&N);
matrix=(int**)malloc(N*sizeof(int*));
if(matrix)
{
for(int i = 0; i < N; i++)
{//for i
matrix[i]=(int*)malloc(N*sizeof(int));
if(!matrix[i])
{//if
printf("\nError. Column not created.");
exit(1);
}//if
}//for i
srand(time(NULL));
printf("\nMatrix[%d][%d]:\n",N,N);
for(int i = 0; i < N; i++)
{//for i
for(int j = 0; j < N; j++)
{//for j
matrix[i][j]=rand()%MAX;
if(matrix[i][j]>Max)
{Max=matrix[i][j]; MaxCol=j;};
printf("%3d ",matrix[i][j]);
}//for j
printf("\n");
}//for i
printf("\nMaximum digit = %d\nColumn with maximum digit = %d",Max,MaxCol+1);
//сдвигаем столбцы на место
//удаляемого столбца:
for(int i = 0; i < N; i++)
for(int j = MaxCol; j < N-1; j++)
matrix[i][j]=matrix[i][j+1];
//уменьшаем кол-во столбцов:
realloc(*matrix, N-1);
printf("\n\nResult Matrix:\n");
for(int i = 0; i < N; i++)
{
for(int j = 0; j < N-1; j++)
{
printf("%3d ",matrix[i][j]);
} printf("\n");
}
for(int i = 0; i < N; i++)
free(matrix[i]);
free(matrix);
}
else
printf("\nError. Matrix not created.");
fflush(stdout);
sleep(10);
return 0;
}
Андрей Алефиренко
спасибо)) а возможно ли сделать задачу без указателей??
#include "stdio.h"
int main
{
return 0;
}
int main
{
return 0;
}
Beksultan Almazbekov
Да ты жгёшь, парень :)
Ярослав Кашталяр
#include
#include
#include
int main()
{
#define N 5
int A[N][N];
int i, j;
int r, c;
srand(time(0));
for(i = 0; i < N; i++)
{
for(j = 0; j < N; j++)
{
A[i][j] = 1 + rand() % 20;
printf("%3d", A[i][j]);
}
printf("\n");
} printf("\n");
r = 0; c = 0;
for(i = 0; i < N; i++)
for(j = 0; j < N; j++)
if(A[i][j] > A[r][c])
{
r = i;
c = j;
}
/*printf("A[%d][%d] = %d\n", r, c, A[r][c]);*/
for(i = 0; i < N; i++)
for(j = c; j < N - 1; j++)
A[i][j] = A[i][j + 1];
for(i = 0; i < N; i++)
{
for(j = 0; j < N - 1; j++)
printf("%3d", A[i][j]);
printf("\n");
}
printf("Press Enter key for continue...");
getchar(); /*getchar();*/
return 0;
}
#include
#include
int main()
{
#define N 5
int A[N][N];
int i, j;
int r, c;
srand(time(0));
for(i = 0; i < N; i++)
{
for(j = 0; j < N; j++)
{
A[i][j] = 1 + rand() % 20;
printf("%3d", A[i][j]);
}
printf("\n");
} printf("\n");
r = 0; c = 0;
for(i = 0; i < N; i++)
for(j = 0; j < N; j++)
if(A[i][j] > A[r][c])
{
r = i;
c = j;
}
/*printf("A[%d][%d] = %d\n", r, c, A[r][c]);*/
for(i = 0; i < N; i++)
for(j = c; j < N - 1; j++)
A[i][j] = A[i][j + 1];
for(i = 0; i < N; i++)
{
for(j = 0; j < N - 1; j++)
printf("%3d", A[i][j]);
printf("\n");
}
printf("Press Enter key for continue...");
getchar(); /*getchar();*/
return 0;
}
Похожие вопросы
- Си. Подсчитать количество появлений максимального элемента матрицы
- Преобразовать матрицу A(m,n) таким образом чтобы каждый столбец был упорядочен по возрастанию
- Найти максимальный элементы в строке матрицы
- Код работает некорректно. Язык Си. Нахождение максимального отрицательного элемента матрицы и замена его числом.
- C++Дана целочисленная матрица размера mn. Найти матрицу, получающуюся перестановкой столбцов
- C++ как найти N-ый максимальный элемент масива?
- Сформировать матрицу B(M, N) элементами которой являются случайные числа, равномерно распределенные в интервале (-5, 7
- Дана матрица nxn, вычислить суммы диагональных элементов( главной и побочной ) отдельно, но в одной функции на языке си.
- Си. Цикл for. Что не так? Составить программу вывода на экран всех простых чисел не превосходящих введеннного числа N
- Найти максимальный элемент в квадратной матрице и сказать под главной диагональю он находится или нет