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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2015, 12:38   #1
AgitoLeviafan
Пользователь
 
Регистрация: 21.11.2015
Сообщений: 20
По умолчанию Помогите исправить ошибку

Код:
#include<iostream>
#include<iomanip>
#include<time.h>
#include<stdlib.h>
using namespace std;
int main()
{
 const int n=9;
 const int m=9;
  int x[n][m],i,j,max,smax,s=0,k=0,nmax,mmax,jmax;
  srand((unsigned)time(NULL));

for(i=0;i<n;i++)
 {
 for(j=0;j<m;j++)
 {x[i][j]=rand()%10-5;
 cout<<setw(5)<<x[i][j];}
 cout<<endl;}
 
 for(j=0;j<m;j++){
 max= x[0][0];
 for(i=1;i<n;i++){
 if(x[i][j]>max)max=x[i][j];}
 cout<<endl<<"max "<<j<<"-oy ="<<max<<endl<<endl;}

for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(i==j){s+=x[i][j];}
cout<<"sred ar glav:"<<(float)s/n<<endl;

 
 for(int i=0;i<1;i++)
 {int jmax=0,kmax=0;
 for(int j=0;j<m;j++)
 if(x[i][j]>x[jmax][kmax])
 {jmax=i;kmax=j;} 
  x[jmax][kmax]=s/n;}  - Ошибка вот здесь 
 

 
for(i=0;i<n;i++){
 for(j=0;j<m;j++)
 cout<<setw(5)<<x[i][j];
 cout<<endl;}


system ("pause");
return 0;

cout<<x[i][j];
}
Помогите пожалуйста отредактировать код,ошибка в том ,что если в 1-ой строке несколько максимальных элементов (Допустим ,равных 4-ырем),он заменяет только 1-ый элемент, а остальные не заменяет ,потому что он сравнивает следующую 4-ку с s/n.

Последний раз редактировалось Аватар; 19.12.2015 в 12:50.
AgitoLeviafan вне форума Ответить с цитированием
Старый 19.12.2015, 13:55   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Ну два очевидных варианта:
1. хранить где-то индексы всех максимальных
2. хранить не индексы, а значение максимума и за второй проход менять совпадающие
p51x вне форума Ответить с цитированием
Старый 19.12.2015, 14:34   #3
AgitoLeviafan
Пользователь
 
Регистрация: 21.11.2015
Сообщений: 20
По умолчанию

Проход, это т.е еще дополнительный цикл составить?
AgitoLeviafan вне форума Ответить с цитированием
Старый 19.12.2015, 15:36   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Ну не зная вашей задачи, можно только гадать. Если тот максимум, который вы в начале программы нашли и тот, что вы тут ищете один и тот же, то можно в этом менять, а не занематься ерундой.
p51x вне форума Ответить с цитированием
Старый 19.12.2015, 15:42   #5
AgitoLeviafan
Пользователь
 
Регистрация: 21.11.2015
Сообщений: 20
По умолчанию

Не тот же,в начале я искал максимальный элемент в каждом столбце,а в конце нужно найти максимальный элемент в 1-ой строке,и заменить его средним арифметическим ,он заменяет,но если там несколько элементов максимальных ,то он заменяет только первый,а затем начинает сравнивать остальные с уже замененным средним арифметическим.Я ошибку понимаю ,но как исправить не могу понять.
AgitoLeviafan вне форума Ответить с цитированием
Старый 19.12.2015, 15:52   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Я вам дал уже два способа
p51x вне форума Ответить с цитированием
Старый 19.12.2015, 17:29   #7
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Полностью задание озвучьте
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить ошибку paradises965 Помощь студентам 1 23.11.2014 17:09
Помогите исправить ошибку! Ahsim Помощь студентам 1 29.04.2014 19:18
Помогите исправить ошибку kalugin19 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 24.03.2014 18:44
Помогите исправить ошибку sergoss Общие вопросы Delphi 2 14.02.2009 09:59
помогите исправить ошибку. alen666 Паскаль, Turbo Pascal, PascalABC.NET 11 08.03.2008 16:43