Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Правильность по смыслу задачи на языке С++, Ошибки в коде 
:(
    Опции темы
Cyber27
Дата 23.11.2018, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 4.11.2018

Репутация: нет
Всего: нет



Задача:
Даны натуральное число n, действительная квадратная матрица порядка n, действительные a1,a2...a n+5. Элементы последовательности a1,a2...a n+5 домножить на 10, если наибольший элемент матрицы (при условии, что такой элемент единственный) находится на главной диагонали и умножить на 0.5 в противном случае.
Мой код:
Код

#include <cstdlib>
#include <iostream>
#include <ctime>

using namespace std;

int main()
{
srand(time(NULL));
    const int n=10;
    int m[n][n], a[n+5], i, j;
    bool b;
    float mas;
{
    mas =0 ;
    for(i=1;i<n;++i)
for (j=1;j<n;++j)
m[j][i]= rand()%256;
cout<< m[i][j]<<endl;
    if  (m[i][j] > mas)
{
mas = m[i][j];
b=(i=j);}
}
cout<<" :\n";
cout<<"a= " << endl;
{
    for(i=1;i<n+5;++i)
  a[i]=rand ()%100;
cout<<"a[i] "<< "  :\n";
cout<<"  :\n";
cout <<"Result = " <<endl;
    for (i=1;i<n+5;++i)
    if (b>mas){
a[i]=a[i]*10;
  }  else
a[i]=a[i]*0.5;
}
cout<<a[i]<<" :\n";
cout <<" "<<endl;
return 0;
}


Что-то не так, но не могу понять что именно 

Это сообщение отредактировал(а) Cyber27 - 23.11.2018, 16:32
PM MAIL   Вверх
Cyber27
Дата 23.11.2018, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 4.11.2018

Репутация: нет
Всего: нет



Или вот так получше?
Подскажите, пожалуйста.
Код

#include <cstdlib>
#include <iostream>
#include <ctime>

using namespace std;

int main(void)
{
srand(time(NULL));
    int const n=5;
    int A[n][n], i, j, max;
{
    for(i=0;i<n;++i)
        for(i=0;i<n;++i)
    A[i][j]=rand()%25+1;
    cout<<A[i][j]<<endl;
}
    max=A[1][1];
    for (i=0;i<n;++i)
        for (j=0;j<n;++j)
cout <<"max="<<endl;
{
    if(max = [i][j])
        max = max*10;
    else
        max = max*0.5;
cout<< "max" <<endl;
}
return 0;
}



Кто-то помогите пожалуйста. Это срочно

Это сообщение отредактировал(а) Cyber27 - 24.11.2018, 13:14
PM MAIL   Вверх
kapbepucm
Дата 30.11.2018, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 993
Регистрация: 14.6.2007
Где: Латвия

Репутация: нет
Всего: 12



Код
#include <cstdlib>
#include <iostream>
#include <ctime>

using namespace std;

float randMToN(float M, float N)
{
  return M + (rand() / (RAND_MAX / (N-M)));  
}

int main(void)
{
  srand(time(NULL));
  int       i, j, max_i, max_j;
  char      isMaxUnique=1;
  const int n=5;     //натуральное число n
  float     A[n][n]; //действительная квадратная матрица порядка n
  float     a[n+5];  //последовательность действительных чисел a1,a2...a n+5
  
  /*заполнение матрицы*/
  for(i=0; i<n; i++)
    for(j=0; j<n; j++)
    {
      A[i][j]=randMToN(-100, 100); //заполнение действительными числами из интервала [-100;+100]
      cout << "A(" << i+1 << ";" << j+1 << ") = " << A[i][j] << endl;
    }

  /*заполнение последовательности*/
  for(i=0; i<n+5; i++)
  {
    a[i]=randMToN(-100, 100);
    cout << "a" << i+1 << " = " << a[i] << endl;
  }

  /*поиск максимального элемента*/
  max_i=0;
  max_j=0;
  for (i=0; i<n; i++)
    for (j=0; j<n; j++)
      if (A[max_i][max_j] < A[i][j])
      {
        max_i=i;
        max_j=j;
      }
  cout << "max element = " << A[max_i][max_j] << endl;

  /*проверка условия, единственный ли максимальный элемент*/
  for (i=0; i<n; i++)
    for (j=0; j<n; j++)
      if ((A[max_i][max_j] == A[i][j]) && (i != max_i) && (j != max_j))
        isMaxUnique = 0;

  /*Элементы последовательности a1,a2...a n+5 домножить на 10,
    если наибольший элемент матрицы (при условии, что такой элемент единственный)
    находится на главной диагонали*/
  for (i=0; i<n+5; i++)
    if (isMaxUnique && (max_i == max_j))
      a[i] = a[i] * 10;
    else
      /* и умножить на 0.5 в противном случае.*/
      a[i] = a[i] * 0.5;

  cout << "result:" << endl;
  for(i=0; i<n+5; i++)
    cout << "a" << i+1 << " = " << a[i] << endl;

  return 0;
}



--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
Cyber27
Дата 30.11.2018, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 4.11.2018

Репутация: нет
Всего: нет



kapbepucm, Спасибо большое smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1169 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.