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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
rafael999
0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 148
#1

Помогите доделать программу. Поменять местами найденный максимальный элемент и значение S. - C++

19.11.2013, 19:36. Просмотров 309. Ответов 3
Метки нет (Все метки)

Помогите пожалуйста разобраться с заданием , первые два у меня работают отлично , а вот третье в котором нужно вместо А[3][j_max] поставить сумму найденную в первом задании , возникает проблема.

Постановка задачи. Исходный массив считать из файла *.txt (файл создать самим). Результаты вычислений и манипуляций над массивом вывести на экран и в файлы*.xls. Для записи результатов в файл создать пользовательскую функцию.
Дана матрица А(4,4)
1.Найти сумму элементов среди элементов расположенных на главной диагонали матрицы А.
2.Найти максимальный элемент в 3-ей строке матрицы
3.Поменять местами найденный максимальный элемент и значение S.
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include"stdafx.h"
#include<iostream>
#include<iomanip>
#include<fstream>
#include<math.h>
using namespace std;
void read_matr(double Y[4][4]){
ifstream f("c://yes.txt");
for(int i=0; i<4; i++){
for(int j=0; j<4; j++){
f>>Y[i][j];}
 }
 f.close();}
void print_matr(double Y[4][4]){   //печатьматрицывконсоль
 cout<<"matrica:"<<endl;
for(int i=0; i<4; i++){
for(int j=0; j<4; j++){
cout<<setw(10)<<Y[i][j];}
 cout<<endl;}
 }
void print_values(char*str, double v){ // выводвфайлполученныхданных //(дляпунктов 1-4, 6)
fstream f1;
f1.open("values.xls", ios::app);
f1<<str<<"\t"<<v<<endl;
f1.close();
}
void print_matr_file(char*f_name, double Y[4][4]){// выводматрицыв //файлсименем f_name
ofstream f2(f_name);
for(int i=0; i<4; i++){
for(int j=0; j<4; j++){
f2<<Y[i][j]<<"\t";
}
f2<<endl;
}
f2.close();
f2.clear();}
 
double function1(double Y[4][4]){
double s=0;
for (int i = 0; i < 4; i++)
{s+=Y[i][i];
}
print_values("1)\tсумма элементов главной диагонали = ",s);
return s;
}
void function2(double Y[4][4]){
double max=-1000; int j_max;
for(int j=0; j<4; j++)
{
if(Y[2][j]>max){
max=Y[2][j];
j_max=j;}}
print_values("2)\tнаибольшийэлемент 3 строки = ",max);
print_values("\tномерстолбца = ",j_max+1);
cout<<" max = "<<max;
cout<<"; nomer stolbca = "<<j_max+1<<endl;
}
void function3(double Y[4][4], double ss){
Y[2][j_max]=ss;
print_matr(Y);
print_matr_file("3zadanie.xls",Y);
}
 
 
 
int main(){
double A[4][4];
 read_matr(A);
 cout<<"ishodnaja matrica:"<<endl;
 print_matr(A);
cout<<"vipolnenie:"<<endl;
// 1 - нахождение суммы всех элементов в матрице
double s1=function1(A);
cout<<"1) summa glavnoy diagomali = "<<s1<<endl;
// 2 - наибольший элемент вглавной диагонали
cout<<"2) naibolshii element v 3 stroke:"<<endl;
function2(A);
// 3 - поменять А[3][j_max] на s1
cout<<"3) pomenjat A[3][j_max] na s1"<<endl;
function3(A, s1);
return 0;
 }
Спасибо!
Миниатюры
Помогите доделать программу. Поменять местами найденный максимальный элемент и значение S.  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2013, 19:36     Помогите доделать программу. Поменять местами найденный максимальный элемент и значение S.
Посмотрите здесь:

Как заменить максимальный найденный элемент на значение S? - C++
// proga.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;iomanip&gt; ...

Прокомментируйте программу: поменять местами максимальный и минимальный элемент массива - C++
можете объяснить эту прогу #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; int...

Найти в массиве максимальный элемент и минимальный элемент, и поменять их местами - C++
Привет) помогите пожалуйста решить задачу. Дан целочисленный массив из m элементов. Найдите в нем максимальный элемент и минимальный...

Поменять местами минимальный элемент с первым элементом массива, а максимальный элемент с последним - C++
Здравствуйте. Помогите пожалуйста написать программу: для поиска минимального и максимального элементов массива из 15 действительных чисел....

В последовательности поменять местами максимальный элемент и элемент с номером m - C++
Дано натуральное число m&lt;20, действительные числа А1..А25 (попарно различные). В последовательности А1..А25 поменять местами МАХ-элемент и...

Поменять местами максимальный элемент матрицы и элемент А[1][1] - C++
Здравствуйте. Задача состоит в том, чтобы поменять местами максимальный элемент и элемент А. Но не могу понять почему у меня не меняет...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Supernatural
287 / 143 / 28
Регистрация: 22.11.2010
Сообщений: 1,499
19.11.2013, 20:10     Помогите доделать программу. Поменять местами найденный максимальный элемент и значение S. #2
я могу ошибаться, но j_max объявлена как локальная переменная в функции2 и ее значение никто(из других ф-ий) не видит. При передаче параметров функция3 получает массив и значение(на которое надо сменить). А вот что менять? Может стоит указать 3ий параметр, что то вроде (массив, индекс_максимального_элемента, значение s) или вообще проще (индекс_макс, значение).
rafael999
0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 148
19.11.2013, 20:16  [ТС]     Помогите доделать программу. Поменять местами найденный максимальный элемент и значение S. #3
Помогите пожалуйста, а то 2 дня мучаюсь
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2013, 20:29     Помогите доделать программу. Поменять местами найденный максимальный элемент и значение S.
Еще ссылки по теме:

Поменять местами минимальный и максимальный элемент - C++
Помогите сделать задачу, не понимаю как делать. Создать стек из случайных чисел и поменять местами минимальный и максимальный элементы....

Поменять местами максимальный элемент массива и первый - C++
Смог поменять максимальный элемент массива на первый, но первый на максимальный не меняется. В чем ошибка? #include &lt;iostream.h&gt; ...

Поменять местами минимальный и максимальный элемент массива Z - C++
Записать четные положительные элементы целочисленных массивов X и Y в мас- сив Z. Поменять местами минимальный и максимальный элемент...

В матрице поменять максимальный и минимальный элемент местами - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace std; int main() { setlocale(0, &quot;.1251&quot;); double a; int i, j; for (i...


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

Или воспользуйтесь поиском по форуму:
Zig_Stas
8 / 8 / 1
Регистрация: 26.10.2013
Сообщений: 55
19.11.2013, 20:29     Помогите доделать программу. Поменять местами найденный максимальный элемент и значение S. #4
Цитата Сообщение от rafael999 Посмотреть сообщение
Помогите пожалуйста, а то 2 дня мучаюсь
Прочитай пост выше. Там рассказано, что делать=)
Yandex
Объявления
19.11.2013, 20:29     Помогите доделать программу. Поменять местами найденный максимальный элемент и значение S.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru