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

Почему не работает функция Matricav? - C++

Восстановить пароль Регистрация
 
ШифрКод
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 55
20.04.2013, 12:23     Почему не работает функция Matricav? #1
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
#include <vcl.h>
#pragma hdrstop
#pragma argsused
#include <conio.h>
#include <iostream.h>
#include <windows.h>
#include <winbase.h>
#include <stdlib.h>
int Matricaf()// Формирует матрицу
{randomize();
int i,j,N,M,a[10][10],max=a[0][0],min=a[0][0];
cout<<"Vvedit rozmirnist matrici NxM:\n";
cin>>N;
cin>>M;
cout<<"Matricu sformovano\n";
for(i=0;i<N;i++)
{for(j=0;j<M;j++)
a[i][j]=random(10);
}
}
int Matricav()//Віводит матрицу которую сформировала функция Matricaf()
{int i,j,N,M,a[10][10];
for(i=0;i<N;i++)
{for(j=0;j<M;j++)
cout<<a[i][j]<<"\t";
cout<<endl;}
}
int Menu()
{int z;
cout<<"1.Formuvannya matrici\n";
cout<<"2.Vuvid matrici\n";
do {
cout<<"Vvedite nomer:";
cin>>z;
  switch(z)
  {case 0: {exit(1);}
   case 1: { Matricaf();break;}
   case 2: {Matricav();break;}
  Sleep(2000);
}while (z!=0);
}
int main()
{
Menu();
getch();
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
babazoya
 Аватар для babazoya
7 / 7 / 3
Регистрация: 28.12.2010
Сообщений: 39
20.04.2013, 13:37     Почему не работает функция Matricav? #2
В функции Matricav вы выводите локальную переменную из 22 строчки. Матрица, сформированная в функции вовсе пропадает после завершения работы функции. Сделайте матрицу глобальной переменой.

Добавлено через 31 минуту
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
#include <conio.h>
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
int *a,N,M;
 
void Matricaf( void )// Формирует матрицу
{
    //randomize();
    int i,j;
    cout<<"Vvedite razmernost' matrici NxM\n";
    cin>>N;
    cin>>M;
    cout<<"Matrica sformovana\n";
    a = new int[N*M];
    for(i = 0;i < N;i++)
        for(j = 0;j < M;j++)
            a[N*i+j]=rand() % 10;
}
 
 
void Matricav( void )//Віводит матрицу которую сформировала функция Matricaf()
{
    int i,j;
    for(i = 0;i < N;i++)
    {
        for(j = 0;j < M;j++)
            cout<<a[N*i+j]<<" ";
        cout<<endl;
    }
 
}
 
void Menu( void )
{
    int z;
    cout<<"1.Formirovanie matrici\n2.Vivod matrici\n0.Exit\n";
 
    while(1)
    {
        cout<<"Vvedite nomer: ";
        cin>>z;
        switch(z)
        {
            case 0: exit(1);
            case 1: Matricaf();
                    break;
            case 2: Matricav();
                    break;
        }
 
    }
}
 
 
int main()
{
    Menu();
    getch();
    return 0;
}
ШифрКод
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 55
20.04.2013, 15:05  [ТС]     Почему не работает функция Matricav? #3
спасибо)а я тупанул(
ШифрКод
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 55
21.04.2013, 19:50  [ТС]     Почему не работает функция Matricav? #4
зачем ты описываещь елементы так:a[N*i+j] если можно так a[i][j]...
Yandex
Объявления
21.04.2013, 19:50     Почему не работает функция Matricav?
Ответ Создать тему
Опции темы

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