Найти сумму элементов в тех столбцах
[FONT="] Характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. Переставляя столбцы заданной матрицы, расположить их в соответствии с ростом характеристик. Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент.[/FONT] надо было написать с помощью указателей, написала и ничего не работает, может вы поможите найти ошибкуtehno036
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <conio.h>
void main()
{
int **mas, n, m, i, j, j1, temp, temp1, sum, fl;
printf("Vvedite colichestvo strok mathicy: ");
scanf_s("%d", &n);
if (n <= 0) printf("Error");
else
printf("\nVvedite colichestvo stolbcov mathicy: ");
scanf_s("%d", &m);
if (m <= 0) printf("Error");
if (!(mas = (int**)malloc(n*m*sizeof(int))))
{
puts("out of memory");
_getch();
return;
}
for (i = 0; i<n; i++)
for (j = 0; j<m; j++)
mas[j] = i + j;
printf("\nVvedite element matricy: ");
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
printf("Input [%d,%d]\n", i + 1, j + 1);
scanf_s("%d", &mas[j]);
}
printf("\n");
}
printf("\nIshodnay matrica\n");
for (i = 0; i<n; i++)
{
for (j = 0; j<m; j++)
{
printf("%d\t", *(*(mas + i) + j));
}
printf("\n");
}
for (j = 0; j<m - 1; j++)
for (j1 = 0; j1<m - 1 - j; j1++)
{
temp1 = temp = 0;
for (i = 0; i<n; i++)
{
if (mas[j1]<0 && abs(mas[j1]) % 2 == 1)
temp += abs(mas[j1]);
if (mas[j1 + 1]<0 && abs(mas[j1 + 1]) % 2 == 1)
temp1 += abs(mas[j1 + 1]);
}
if (temp>temp1)
for (i = 0; i<n; i++)
{
temp = mas[j1];
mas[j1] = mas[j1 + 1];
mas[j1 + 1] = temp;
}
}
printf("\nPolucennay matrica\n");
for (i = 0; i<n; i++)
{
for (j = 0; j<m; j++)
{
printf("%d\t", *(*(mas + i) + j));
}
printf("\n");
}
for (i = 0; i<m; i++)
{
sum = 0;
fl = 0;
for (j = 0; j<n; j++)
{
sum += mas[j];
if (mas[j]<0)
fl = 1;
}
printf("v stolbce %d ", i + 1);
if (fl == 1)
printf(" Ect' otricatel'ny element i summa ego elementov ravna %d\n", sum);
else
printf(" net otricatel'nogo elementa \n");
}
}
[FONT="] Характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. Переставляя столбцы заданной матрицы, расположить их в соответствии с ростом характеристик. Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент.[/FONT] надо было написать с помощью указателей, написала и ничего не работает, может вы поможите найти ошибкуtehno036
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <conio.h>
void main()
{
int **mas, n, m, i, j, j1, temp, temp1, sum, fl;
printf("Vvedite colichestvo strok mathicy: ");
scanf_s("%d", &n);
if (n <= 0) printf("Error");
else
printf("\nVvedite colichestvo stolbcov mathicy: ");
scanf_s("%d", &m);
if (m <= 0) printf("Error");
if (!(mas = (int**)malloc(n*m*sizeof(int))))
{
puts("out of memory");
_getch();
return;
}
for (i = 0; i<n; i++)
for (j = 0; j<m; j++)
mas[j] = i + j;
printf("\nVvedite element matricy: ");
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
printf("Input [%d,%d]\n", i + 1, j + 1);
scanf_s("%d", &mas[j]);
}
printf("\n");
}
printf("\nIshodnay matrica\n");
for (i = 0; i<n; i++)
{
for (j = 0; j<m; j++)
{
printf("%d\t", *(*(mas + i) + j));
}
printf("\n");
}
for (j = 0; j<m - 1; j++)
for (j1 = 0; j1<m - 1 - j; j1++)
{
temp1 = temp = 0;
for (i = 0; i<n; i++)
{
if (mas[j1]<0 && abs(mas[j1]) % 2 == 1)
temp += abs(mas[j1]);
if (mas[j1 + 1]<0 && abs(mas[j1 + 1]) % 2 == 1)
temp1 += abs(mas[j1 + 1]);
}
if (temp>temp1)
for (i = 0; i<n; i++)
{
temp = mas[j1];
mas[j1] = mas[j1 + 1];
mas[j1 + 1] = temp;
}
}
printf("\nPolucennay matrica\n");
for (i = 0; i<n; i++)
{
for (j = 0; j<m; j++)
{
printf("%d\t", *(*(mas + i) + j));
}
printf("\n");
}
for (i = 0; i<m; i++)
{
sum = 0;
fl = 0;
for (j = 0; j<n; j++)
{
sum += mas[j];
if (mas[j]<0)
fl = 1;
}
printf("v stolbce %d ", i + 1);
if (fl == 1)
printf(" Ect' otricatel'ny element i summa ego elementov ravna %d\n", sum);
else
printf(" net otricatel'nogo elementa \n");
}
}