C++.Дана матрица С(6,6). Определить количество "особых" элементов массива, считая элемент...

0 голосов
85 просмотров

C++.Дана матрица С(6,6). Определить количество "особых" элементов массива, считая
элемент "особым", если он больше суммы остальных элементов своего столбца.
Напечатать индексы "особых" элементов.


Информатика (20 баллов) | 85 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

#include
#include
#include
using namespace std;

int const n=6;
int const m=6;

int main() {
  int a[n][m];
  int sm;  
// установка генератора случайных чисел
  srand(time(NULL));
// генерация массива и вывод на экран
  for (int i=0; i  for (int j=0; j    a[i][j]=rand()%50-20;
        cout<<setw(7)<<a[i][j];<br>    }
    cout<<endl;<br>  }
//  обработка массива
  for (int i=0; i     sm=0;
     for (int j=0; j     for (int j=0; j        if (2*a[j][i]>sm) cout<<j+1<<" "<<i+1<<endl;<br>  }    
  system("pause");
  return 0;
}


    -16     -2     15      4      7      3
    -13     16      3     16    -13      3
      0     19     20      6     20    -18
    -19      7      1     10    -11     25
      5      4      3     21     28    -13
     26    -19     -7     12    -20     11
1 1
2 1
3 1
5 1
6 1
3 5
5 5
4 6

(9.7k баллов)
0

В вашем результате есть особое число, его индекс 2,2. Учитывая то, что вы выводите с +1, то в выводе должен быть результат 3,3, я его там не увидел.

0

Согласен, нужно исправить одну строку: if (a[j][i]>sm) cout<<j+1<<" "<<i+1<<endl; на следующую: if (2*a[j][i]>sm) cout<<j+1<<" "<<i+1<<endl;

0

нет, просто if (sum-a[j][i]<a[j][i]) cout<<j+1<<" "<<i+1<<endl;

0

Вы то же самое и написали, перенесите из левой части в правую.

0

Всмысле то же?Вы умножаете на 2 ваш элемент. Не понимаю почему.

0

Вас в школе плохо учили арифметике?

0

Нет, я сам её плохо учил, но всё же, к чему это умножение на 2?

0

Может быть я что-то не понимаю, но как помоему, лоничнее будет от сумы отнять проверяемый элемент, нежели умножать его на 2.

0

sum - a[j][i] < a[j][i] то же самое, что sum < 2*a[j][i] переносите в правую часть с противоположным знаком, если это не понятно, тогда тяжелый случай.

0

А, вы умножаете элемент на 2, что-бы не вычетать его из суммы, дошло, но как помоему более правильно будет через sum-a[j][i] :)