Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > C/C++/С#


Ответ
 
Опции темы Опции просмотра
Старый 13.10.2012, 14:42   #11 (permalink)
Fenix
404
 
Аватар для Fenix
 
Регистрация: 10.01.2010
Сообщений: 1,749
Записей в дневнике: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3868
По умолчанию

Забыли изначально Max присвоить 0.
Fenix вне форума   Ответить с цитированием

Старый 13.10.2012, 14:42
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Дам вам ссылки на темы, которые имеют что то общее с вашей темой

Пожалуйста, помогите написать программу в Паскале.
Пожалуйста, помогите написать программу на Паскале
Помогите пожалуйста написать программу в С++

Старый 13.10.2012, 19:40   #12 (permalink)
pave
Новичок
 
Регистрация: 11.10.2012
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

void __fastcall TForm1::Button1Click(TObject *Sender)
{
float M[3][3];
int Max,i,j;
Max=0;
Max=M[0][0];
M[1][1]=StrToFloat(Edit1->Text);
M[1][2]=StrToFloat(Edit2->Text);
M[1][3]=StrToFloat(Edit3->Text);
M[2][1]=StrToFloat(Edit4->Text);
M[2][2]=StrToFloat(Edit5->Text);
M[2][3]=StrToFloat(Edit6->Text);
M[3][1]=StrToFloat(Edit7->Text);
M[3][2]=StrToFloat(Edit8->Text);
M[3][3]=StrToFloat(Edit9->Text);
for(int i=1;i<=3;i++)
{for(int j=1;j<=3;j++)
{ if(Max<M[3][3]) Max=M[3][3];
}
}
Edit10->Text=FloatToStr(Max);
}



Все равно не работает
pave вне форума   Ответить с цитированием
Старый 13.10.2012, 20:39   #13 (permalink)
Fenix
404
 
Аватар для Fenix
 
Регистрация: 10.01.2010
Сообщений: 1,749
Записей в дневнике: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3868
По умолчанию

Цитата:
Сообщение от pave Посмотреть сообщение
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float M[3][3];
int Max,i,j;
Max=0;
Max=M[0][0];
M[1][1]=StrToFloat(Edit1->Text);
M[1][2]=StrToFloat(Edit2->Text);
M[1][3]=StrToFloat(Edit3->Text);
M[2][1]=StrToFloat(Edit4->Text);
M[2][2]=StrToFloat(Edit5->Text);
M[2][3]=StrToFloat(Edit6->Text);
M[3][1]=StrToFloat(Edit7->Text);
M[3][2]=StrToFloat(Edit8->Text);
M[3][3]=StrToFloat(Edit9->Text);
for(int i=1;i<=3;i++)
{for(int j=1;j<=3;j++)
{ if(Max<M[3][3]) Max=M[3][3];
}
}
Edit10->Text=FloatToStr(Max);
}



Все равно не работает
Max=M[0][0]; - лишнее действие. К тому же, вы не заполняете этот элемент массива. Следовательно там может лежать абсолютно рандомное число. Которое может быть больше любого из элементов матрицы.

if(Max<M[3][3]) Max=M[3][3]; - ЧТО? Что Вы тут делаете? Я же уже исправлял это. Должно быть так:
Код:
 if(Max<M[i][j]) Max=M[i][j];
У Вас не работало потому, что Вы постоянно сравниваете с правым нижним элементом матрицы и его же присваиваете если условие выполняется.
Fenix вне форума   Ответить с цитированием
Старый 13.10.2012, 21:01   #14 (permalink)
pave
Новичок
 
Регистрация: 11.10.2012
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

А насколько сложно сделать чтобы еще два наибольших элемента выводила???
pave вне форума   Ответить с цитированием
Старый 13.10.2012, 21:34   #15 (permalink)
Fenix
404
 
Аватар для Fenix
 
Регистрация: 10.01.2010
Сообщений: 1,749
Записей в дневнике: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3868
По умолчанию

Еще 2? Добавить 1 цикл. И лучше максимальные числа держать в отдельном массиве на 3 элемента.
Fenix вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 13.10.2012, 22:48   #16 (permalink)
pave
Новичок
 
Регистрация: 11.10.2012
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Как добавить один цикл??? Куда??? И как он будет выглядеть
pave вне форума   Ответить с цитированием
Старый 13.10.2012, 23:45   #17 (permalink)
Fenix
404
 
Аватар для Fenix
 
Регистрация: 10.01.2010
Сообщений: 1,749
Записей в дневнике: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3868
По умолчанию

Вы совсем не желаете понимать то, что Вам нужно.
Завтра выложу рабочий код. Под Visual сами переделаете.

P.S: рановато с такими познаниями визуалку писать.
Fenix вне форума   Ответить с цитированием
Старый 14.10.2012, 10:17   #18 (permalink)
pave
Новичок
 
Регистрация: 11.10.2012
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Да да) Я Вас даже не понимаю
pave вне форума   Ответить с цитированием
Старый 16.10.2012, 07:26   #19 (permalink)
Fenix
404
 
Аватар для Fenix
 
Регистрация: 10.01.2010
Сообщений: 1,749
Записей в дневнике: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3868
По умолчанию

Прошу прощения за то, что не ответил вчера, учеба...
Собственно, о чем это я? А! Вот (компилятор Dev-Cpp):
Код:
#include <stdlib.h>
#include <stdio.h>

int main()
{
  int matrix[3][3]; //матрица
  int max[3];        //массив максимальных
  //обнуление массива максимальных
  for(int i=0;i<3;i++) 
   max[i]=0;

  //работа с матрицей
  for(int i=0;i<3;i++)
  {
   printf("\n-------------\n|");
   for(int j=0;j<3;j++)
   {
    matrix[i][j]=rand()%100; //заполняем матрицу псевдослучайными числами от 0 до 100
    printf("%2d |",matrix[i][j]); //вывод матрицы
    
    //находим максималные
    if(matrix[i][j]>max[0]) 
    {
     max[2]=max[1];
     max[1]=max[0];
     max[0]=matrix[i][j];  
    }
    else
    {
     if(matrix[i][j]>max[1])
     {
      max[2]=max[1];
      max[1]=matrix[i][j];  
     }
     else
      if(matrix[i][j]>max[2])
       max[2]=matrix[i][j];
    }
   }
  }
 printf("\n-------------\n");
  
 //вывод массива максимальных чисел 
 for(int z=0;z<3;z++)
  printf("\n Max: %4d",max[z]);


 system("pause");
 return 0;
}
В результате работы алгоритма, массив максимальных будет упорядочен по убыванию.
Под Visual C++ сами подгоните.
Fenix вне форума   Ответить с цитированием
Старый 16.10.2012, 20:07   #20 (permalink)
pave
Новичок
 
Регистрация: 11.10.2012
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо!
pave вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Метки
с++


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 07:27.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.