НУЖНО СДЕЛАТЬ ПРОГРАММУ на c++ Дана матрица размера M×N. Удалить её первый столбец, содержащий только положительные элементы. Если требуемых столбцов нет, то вывести матрицу без изменений.
Информационная неопределенность (количество возможных результатов события) равна 16. Будем задавать вопросы, на которые можно ответить только «да» или «нет». Вопрос будем ставить так, чтобы каждый ответ приносил 1 бит информации, т.е. уменьшал информационную неопределенность в два раза. Задаем вопросы: - Друг живет выше 8-го этажа? Нет. После этого ответа число вариантов уменьшилось в два раза, следовательно, информационная неопределенность уменьшилась в два раза. Получен 1 бит информации. Друг живет выше 4-го этажа? Да. Число вариантов уменьшилось еще в два раза, получен еще 1 бит информации. Друг живет выше 6-го этажа? Да. После данного ответа осталось два варианта: друг живет или на 7 этаже, или на 8 этаже. Получен еще 1 бит информации. Друг живет на 7-м этаже? Нет. Все ясно. Друг живет на 8-м этаже. Каждый ответ уменьшал информационную неопределенность в два раза. Всего было задано 4 вопроса. Получено 4 бита информации. Сообщение о том, что друг живет на 8-м этаже 16-ти этажного дома несет 4 бита информации.
Const N=10; var i, j: byte; n1, n2: array [1..N] of integer; begin j := 1; for i := 1 to N do begin n1[i] := random(100); writeln('n1[', i, '] => ', n1[i]); end; writeln(''); for i := 1 to N do begin if (n1[i] mod 2 = 0) then begin n2[j] := n1[i]; inc(j); n1[i] := n1[i] * 2; end; end; for i := 1 to N do writeln('n1[', i, '] => ', n1[i]); for i := 1 to j do writeln('n2[', i, '] => ', n2[i]); end.
#include<stdio.h>
int main()
{
int n=3,m=3,a[50][50],i,j,k,g;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&a[i][j]);
for(j=0;j<m;++j)
{
g=0;
for(i=0;i<n;++i)
if(a[i][j]>0) ++g;
if(g==n)
{
for(k=j;k<m-1;++k)
for(i=0;i<n;++i)
a[i][k]=a[i][k+1];
m--;
break;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%2d",a[i][j]);
printf("\n");
}
return 0;
}
Объяснение: