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

подскажите почему программа работает неправильно - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
korkis
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 19
22.10.2011, 01:07     подскажите почему программа работает неправильно #1
Использование двумерного массива как аргумента функции и возвращаемого значения функции


выдает предупреждение:1>------ Build started: Project: Glushkov_double_massive_and_func, Configuration: Debug Win32 ------
1> tredfy.cpp
1>f:\projects си++\glushkov_double_massive_and_func\glushkov_double_massive_and_func\tredfy.cpp(18): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 10.0\vc\include\stdio.h(304) : see declaration of 'scanf'
1>f:\projects си++\glushkov_double_massive_and_func\glushkov_double_massive_and_func\tredfy.cpp(20): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 10.0\vc\include\stdio.h(304) : see declaration of 'scanf'
1>f:\projects си++\glushkov_double_massive_and_func\glushkov_double_massive_and_func\tredfy.cpp(36): warning C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details.
1> c:\program files\microsoft visual studio 10.0\vc\include\conio.h(128) : see declaration of 'getch'
1>f:\projects си++\glushkov_double_massive_and_func\glushkov_double_massive_and_func\tredfy.cpp(53): warning C4700: uninitialized local variable 'n' used
1>f:\projects си++\glushkov_double_massive_and_func\glushkov_double_massive_and_func\tredfy.cpp(55): warning C4700: uninitialized local variable 'm' used
1> LINK : F:\Projects Си++\Glushkov_double_massive_and_func\Debug\Glushkov_double_massive_and_func.exe not found or not built by the last incremental link; performing full link
1> Glushkov_double_massive_and_func.vcxproj -> F:\Projects Си++\Glushkov_double_massive_and_func\Debug\Glushkov_double_massive_and_func.exe
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========


#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <locale.h>
#include <string.h>
#include <conio.h>
#include <windows.h>

int**getMemory(int,int);
void printArray(int**);

int main( )
{
setlocale(LC_ALL, "");
int **Array;
int i,j,n,m;
printf("Rows->");
scanf("%i",&n);
printf("Cows->");
scanf("%i",&m);

Array=getMemory(n,m);

for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
Array[i][j]=i+1;
}

printArray(Array);

for(i=0;i<n;i++)

delete[] Array[i];
delete[] Array;
getch();
return 0;

}

int** getMemory(int n,int m)
{
int**mas;
mas=new int*[n];
for(int i=0;i<n;i++)
mas[i]=new int[m];
return mas;
}

void printArray(int**mas)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
printf("mas[i][j]=%i",mas[i][j]);
}
printf("\n");
}


}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
22.10.2011, 01:13     подскажите почему программа работает неправильно #2
У тебя функция printArray не знает что такое n и m.
korkis
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 19
22.10.2011, 01:15  [ТС]     подскажите почему программа работает неправильно #3
я так понял необходимо определить n и m в функции?
KeyGen
 Аватар для KeyGen
333 / 289 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
22.10.2011, 01:31     подскажите почему программа работает неправильно #4
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
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <locale.h>
#include <string.h>
#include <conio.h>
#include <windows.h>
 
int**getMemory(int,int);
void printArray(int**,int n1, int m1);
 
int main( )
{
setlocale(LC_ALL, "");
int **Array;
int i,j,n,m;
printf("Rows->");
scanf("%i",&n);
printf("Cows->");
scanf("%i",&m);
 
Array=getMemory(n,m);
 
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
Array[i][j]=i+1;
}
 
printArray(Array,n,m);
 
for(i=0;i<n;i++)
 
delete[] Array[i];
delete[] Array;
getch();
return 0;
 
}
 
int** getMemory(int n,int m)
{
int**mas;
mas=new int*[n];
for(int i=0;i<n;i++)
mas[i]=new int[m];
return mas;
}
 
void printArray(int**mas,int n1, int m1)
{
for(int i=0;i<n1;i++)
{
for(int j=0;j<m1;j++)
{
printf("mas[i][j]=%i",mas[i][j]);
}
printf("\n");
}
 
 
}
korkis
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 19
22.10.2011, 01:33  [ТС]     подскажите почему программа работает неправильно #5
пример из книжки,буду признателен ,если кто-то исправит
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
22.10.2011, 01:40     подскажите почему программа работает неправильно #6
Цитата Сообщение от korkis Посмотреть сообщение
я так понял необходимо определить n и m в функции?
Можно например передать ей в качестве параметра
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2011, 01:44     подскажите почему программа работает неправильно
Еще ссылки по теме:

Почему функция atanh работает неправильно? C++
C++ Почему моя программа неправильно работает?
Программа работает неправильно. Цикл не выполняется. Подскажите ошибку C++

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

Или воспользуйтесь поиском по форуму:
KeyGen
 Аватар для KeyGen
333 / 289 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
22.10.2011, 01:44     подскажите почему программа работает неправильно #7
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
#include <iostream>
 
int **getMemory(int,int);
 
void printArray(int**,int, int);
 
int main()
{
    setlocale(LC_ALL, "");
    
    int **Array;
    int i,j,n,m;
    
    printf("Rows->");
    scanf("%i",&n);
 
    printf("Cows->");
    scanf("%i",&m);
 
    Array=getMemory(n,m);
 
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
        Array[i][j]=i+1;
 
printArray(Array,n,m);
 
for(i=0;i<n;i++) delete[] Array[i];
delete[] Array;
 
system("pause");
return 0;
}
 
int** getMemory(int n,int m){
      int**mas = new int*[n];
      for(int i=0;i<n;i++) mas[i]=new int[m];
      
      return mas;
}
 
void printArray(int**mas,int n1, int m1){
     for(int i=0;i<n1;i++){
         for(int j=0;j<m1;j++)
         printf("mas[i][j]=%i",mas[i][j]);
         printf("\n");
         }
}
Yandex
Объявления
22.10.2011, 01:44     подскажите почему программа работает неправильно
Ответ Создать тему
Опции темы

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