Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

непонятная ошибка - C++

22.11.2013, 20:39. Просмотров 241. Ответов 3
Метки нет (Все метки)

Здравствуйте. Вот в этой программе у меня пишет ошибку: cpp(60) : error C2065: 'j_max' : undeclared identifier.
Хотя если вместо Y[2][j_max] написать Y[2][3] ( в функции void function 3) все хорошо считает. В чем ошибка ? Задание если что
Кликните здесь для просмотра всего текста
Исходный массив считать из файла *.txt (файл создать самим). Результаты вычислений и манипуляций над массивом вывести на экран и в файл*.xls. Для записи результатов в файл создать пользовательскую функцию.
1.Дана матрица А(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;
 }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2013, 20:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос непонятная ошибка (C++):

непонятная ошибка - C++
#include &lt;stdio.h&gt; #include &lt;math.h&gt; main() { float x,pi,s,e,q,n; pi=3.14 ; x= pi/6 ; e=0,0001; s=0 ;

Непонятная ошибка - C++
Мне дана матрица коэффициентов системы линейных уравнений в необычном виде: Исходная СЛУ 4x1 + 2x2 + 9x3 = 1 x2 + 6x3 = 7 4x1 + 2x3...

Непонятная ошибка!? - C++
Есть задача: дан массив и число, переставить числа в массиве таким образом, чтобы слева от некоторой границы шли числа, меньшие или равные...

Непонятная ошибка - C++
Добрый день. Переделывал код http://www.cyberforum.ru/cpp-beginners/thread53080.html под свои нужды. Немогу понять в чём ошибка. Заранее...

Непонятная ошибка - C++
Вообщем имеется такой код: // главная программа aka programm.cpp #include &quot;Sales_item.h&quot; using namespace std; ...

Непонятная ошибка - C++
Всем привет! Вообщем вот функция, которая переводит двоичное число в десятичное, + ещё пару кусков кода, чтобы было понятно, что и откуда...

3
SummerRain
326 / 325 / 17
Регистрация: 16.12.2012
Сообщений: 544
22.11.2013, 20:46 #2
потому что ты определил эту переменную только в функции void function2.
В void function3 она не видна. Сделай её глобальной если хочешь.
1
rafael999
0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 148
22.11.2013, 20:47  [ТС] #3
пожалуйста, напишите в коде, а то я в этом ни как не разберусь
0
SummerRain
326 / 325 / 17
Регистрация: 16.12.2012
Сообщений: 544
22.11.2013, 20:59 #4
Цитата Сообщение от rafael999 Посмотреть сообщение
а то я в этом ни как не разберусь
я тоже...
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include<iostream>
#include<iomanip>
#include<fstream>
#include<math.h>
using namespace std;
 
int j_max;  // добавил
 
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;
             // тут убрал
    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;
}
0
22.11.2013, 20:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2013, 20:59
Привет! Вот еще темы с ответами:

Непонятная ошибка - C++
Задание:С помощью табуляции сделать прогу,которая выводит таблицу.Надо ,чтоб там был цикл While /* * proga.cpp * * Created on:...

Непонятная ошибка - C++
Не могу понять, где неправильно. У меня есть такая матрица А 1 4 2 1 3 6 1 5 2 2 3 5 Мне же её надо преобразовать к такому...

Непонятная ошибка - C++
Нужно считать в вектор пар все числа, отличные от нуля. В паре - первое число - всегда типа int, второе - double. Написал небольшую ф-цию....

непонятная ошибка - C++
Почему здесь выбивает ошибку? Помогите последнюю лабу сделать) if (x&lt;(*Node)-&gt;l) Add(x,&amp;(*Node)-&gt;l); #include &lt;iostream.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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