Форум программистов, компьютерный форум CyberForum.ru

Ошибка в сортировке\выводе массива - C++

Восстановить пароль Регистрация
 
FromKremlin
0 / 0 / 0
Регистрация: 13.05.2010
Сообщений: 9
16.06.2010, 15:21     Ошибка в сортировке\выводе массива #1
Помогите исправить ошибку в программе.
Задание:
В квадратной матрице 3х3 поменять местами столбец, имеющий наибольший элемент со столбцом, имеющим наименьший элемент среди элементов матрицы.
Текст программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream.h>
void main ()
{ int n,i,j,jmax,jmin;
double x[3][3],max,min,k;
n=3;
k=0;
cout<<"Enter mas(x)\n";
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
cin>>x[i][j];
max=x[1][1];
jmax=1;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
if (x[i][j]>max) {max=x[i][j];
jmax=j;}
cout<<"\nmax="<<max<<"\njmax="<<jmax;
min=x[1][1];
jmin=1;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
if (min > x[i][j]) {min=x[i][j];
jmin=j;}
cout<<"\nmin="<<min<<"\njmin="<<jmin;
for(i=1;i<=n;i++)
{k=x[i][jmax];
x[i][jmax]=x[i][jmin];
x[i][jmin]=k;}
cout<<"\nnew mas(x)\n";
for (i=1;i<=n;i++)
{cout<<"\n";
for (j=1;j<=n;j++)
cout<<x[i][j]<<" ";
}}
При выводе отсортированного массива последние 4 элемента выводятся не верно, также иногда происходит ошибка по нахождению min элемента.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2010, 15:21     Ошибка в сортировке\выводе массива
Посмотрите здесь:

Ошибка в задаче по сортировке массива в C++ C++
C++ Ошибка в сортировке
C++ Ошибка при выводе 1-го элемента массива, но правильно выводит последний
Ошибка в вводе/выводе массива C++
C++ Ошибка в сортировке массива по убыванию
C++ Ошибка "Ascess violation" при выводе массива
C++ Ошибка при выводе динамического массива
Ошибка в сортировке массива C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aye Aye
 Аватар для Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
16.06.2010, 15:34     Ошибка в сортировке\выводе массива #2
for (i=1;i<=n;i++) - не верно, надо for (i=0;i<n;i++), потому что индексация массива начинается с 0. в отстальном вреде все верно, только не забудь проверку jmin!=jmax, тоесть если наименьший и наибольший элементы в одном столбце то менять стольбцы не надо.
Yandex
Объявления
16.06.2010, 15:34     Ошибка в сортировке\выводе массива
Ответ Создать тему
Опции темы

Текущее время: 17:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru