Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2008, 17:55   #1
Monzo
Новичок
Джуниор
 
Регистрация: 21.12.2008
Сообщений: 2
По умолчанию двухмерный массив С++(задача)

Задана матрица MxN определить число "особых" элементов. Элемент считаеться "особым" если он больше суммы остольных элементов своего столбца.
Вопрос:Как посчитать сумму каждого столбца, или как вообше это реализовать ?
Monzo вне форума Ответить с цитированием
Старый 21.12.2008, 18:15   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Вроде работает..
Код:
program prmatr;
uses crt;

const M=3; N=7;

var
i,j,k,S,num : integer;
matr : array[1..M,1..N] of integer;

begin
clrscr;
randomize;
for i:=1 to M do
 for j:=1 to N do
  matr[i,j] := random(300);

num := 0;
for j:=1 to N do
 begin
 for i:=1 to M do
   begin
    S := 0;
    for k:=1 to M do
      begin
      if k=i then continue;
      S := S + matr[k,j];
      end;
    if matr[i,j]>S then inc(num);
   end;

 end;
writeln('Num= ',num);
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 22.12.2008, 13:54   #3
Monzo
Новичок
Джуниор
 
Регистрация: 21.12.2008
Сообщений: 2
По умолчанию

хм... просмотрите пожалуйста, что у меня получилось и в чём ошибка. Задача та же.
Цитата:
Edit1->Text="3";
Edit2->Text="3";
}
//---------------------------------------------------------------------------
int n=3,m=3;
void __fastcall TForm1::Button1Click(TObject *Sender)
{
n=StrToFloat(Edit1->Text);
m=StrToFloat(Edit2->Text);
if(n>99,m>99){
Edit1->Text="99";
Edit2->Text="99";
n=StrToFloat(Edit1->Text);
m=StrToFloat(Edit2->Text);
}
StringGrid1->RowCount=n;
StringGrid1->ColCount=m;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
int i,j,s=0,t,A[100][100],e=0,k;
randomize();
for(i=0;i<n;i++)
for(j=0;j<m;j++)
StringGrid1->Cells[i][j]=FloatToStr(random(10)-5);
for(i=0;i<n;i++)
for(j=0;j<m;j++){
A[i][j]=StrToFloat(StringGrid1->Cells[j][i]);
A[i][m]+=A[i][j];}
for(j=0;j<m;j++){
for(i=0;i<n;i++){
for(k=0;k>m;k++){
if(k=i)
s=s+A[k][j];
}
if(A[i][j]>s)
e++;
}
}
Memo1->Lines->Add("Значение "+IntToStr(e));
Monzo вне форума Ответить с цитированием
Старый 22.12.2008, 16:19   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Monzo Сравнивая со своим вариантом, заметил вот что:
Код:
for(j=0;j<m;j++){
for(i=0;i<n;i++){
for(k=0;k>m;k++){
if(k=i)
s=s+A[k][j];
}
По идее, тут ведь должно быть k<m
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 22.12.2008 в 16:25.
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический двухмерный массив С++ EfiopianDIMON Общие вопросы C/C++ 7 19.11.2008 23:38
Двухмерный массив на поле Grigoriy251 Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 21.09.2008 11:52
двухмерный массив Enchantner Паскаль, Turbo Pascal, PascalABC.NET 3 22.04.2008 20:47
Двухмерный массив xtraSHAD0W Паскаль, Turbo Pascal, PascalABC.NET 2 22.04.2008 18:17
Двухмерный массив Atheist Общие вопросы C/C++ 4 22.11.2007 14:05