Знаки элементов строки изменить на противоположные - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Задание: 1.Найти в матрице первый столбец, все элементы которого равны нулю. 2.Знаки элементов строки с таким же номером изменить на противоположные. Сделал только первую часть, помогите со второй, вот код:
#include <stdio.h> 
#include <conio.h> 
#include <locale> 
int main () 
{ 
setlocale(LC_ALL,"rus"); 
int i,j;
int n;
int s=0;
int b[100][100];  
printf("Введите кол-во строк и столбцов матрицы: \n"); 
scanf("%d",&n); 

for (i=0;i<n;i++) 
for (j=0;j<n;j++) 
{ 
printf("Элемент [%d,%d]:", i+1, j+1); 
scanf("%d",&b[i][j]); 
} 
printf("MATRICA: \n"); 
for (i=0;i<n;i++) 
{ 
for (j=0;j<n;j++) 
printf("%d ", b[i][j]); 
printf("\n"); 
} 
 for (j = 0; j < n; j++)
            {
 
                for (i = 0; i < n; i++)
                {
                    s+=(b[i][j]*b[i][j]); 
                }
                if (s == 0)
                {
                    printf("Столбец %d содержит все нулевые элементы", j+1);
                    
                }
                else
                {
                    s = 0;
                }
            
 }}

Решение задачи: «Знаки элементов строки изменить на противоположные»

textual
Листинг программы
int flag;
for(j = 0; j < n; j++){
    for(i = 0, flag = 0; i < n; i++){
        if(b[i][j] != 0)
            flag = 1;
    }
    if(!flag){
        printf("Column %d has only zero", j);
        for(int k = 0; k < n; k++)
            b[j][k] *= -1;
        break;
    }
}

Объяснение кода листинга программы

В этом коде происходит следующее:

  1. В первой строке объявляется переменная типа int с именем flag и инициализируется значением 0.
  2. Во втором цикле перебираются все элементы матрицы b[i][j]. Если элемент не равен 0, то переменная flag изменяется на 1.
  3. Если после прохода по всем элементам матрицы значение переменной flag осталось равным 0, то выводится сообщение о том, что в текущем столбце есть только нули.
  4. После этого выполняется операция умножения на -1 для каждого элемента текущего столбца матрицы b.
  5. Если значение переменной flag изменилось на 1, то выполнение кода прерывается и происходит переход к следующей итерации внешнего цикла.

Оцени полезность:

8   голосов , оценка 3.75 из 5
Похожие ответы