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

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

Войти
Регистрация
Восстановить пароль
 
 
N.Kavt
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 19
#1

Почему не полностью выводится массив? - C++

15.02.2012, 21:17. Просмотров 1041. Ответов 20
Метки нет (Все метки)

Массив MyY не полностью выводится. В чем может быть проблема? Заранее спасибо.

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
const n2max=5;
const n1max=10;
class cl1
{
int n1,n2;
int M[n1max][n2max];
public:
 
cl1(int size1,int size2)
{
if (n1>0||n1<n1max) n1=size1;
else n1=n1max;
if (n2>0||n2<n2max) n2=size2;
else n2=n2max;
}
 
void myinp()
{
randomize;
int i,j;
for(i=0;i<n1;i++){
for(j=0;j<n2;j++){
*(M[i]+j)=random(100);
}
}
}
 
 
 
 
void myout()
{
int i,j,x,y;
cout<<"The Matrix:";
for(i=0,y=4;i<n1;i++,y++){
for(j=0,x=1;j<n2;j++,x+=5){
gotoxy(x,y);
cout<<M[i][j];
}
}
}
 
void MyX(){
int *X,*Y,l1,l2,k;
l1=n1;
l2=n2;
k=l1*l2;
for (int j=0;j<l2;j++){
for (int i=1;i<=k;i++){
X[i+l2*j]=i;
}}
cout<<endl<<endl<<endl<<endl;
for(int i=1;i<=k;i++)
cout<<X[i]<<"   ";
}
 
 
 
void MyY(){
int *Y,l1,l2,k;
l1=n1;
l2=n2;
k=l1*l2;
for (int j=0;j<l2;j++){
for (int i=1;i<=k;i++){
Y[i+l2*j]=j+1;
}}
cout<<endl<<endl<<endl<<endl;
for(int i=1;i<=k;i++)
cout<<Y[i]<<"   ";
}
};
int main()
{
int k1,k2;
cout<<"Input N strok: ";
cin>>k1;
cout<<"Input N stolbcov: ";
cin>>k2;
cl1 objA(k1,k2);
objA.myinp();
objA.myout();
objA.MyX();
objA.MyY();
getch();
return 0;
}
 Комментарий модератора 
Используйте теги форматирования кода!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2012, 21:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему не полностью выводится массив? (C++):

Почему неправильно выводится массив? - C++
Не пойму... массив arr выводится неправильно, если его выводить в main.Получается что-то типа &quot;-858993460&quot; .В cifr он выводится нормально ...

Почему выводится весь массив - C++
Доброго времени суток! Прошу прощения за нубский вопорс, но окончательно запутался. В указателе на массив хранится АДРЕС первого элемента...

Не соображу почему не выводится массив - C++
Код: #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; using namespace std; void func( int a, int b) ...

Почему матрица выводится как обычный массив - C++
//matriza.h #pragma once class matriza { float *b,max,s; int n,m,nom; public: matriza(); void ww_matriza();

Почему при выводе в поток char* выводится весь массив символов? - C++
я немогу вот в чем разобраться есть : int main() { char v = &quot;Fdasda&quot;; char *p=v; cout &lt;&lt; &quot;\np=&quot; &lt;&lt; p; cout &lt;&lt; &quot;\n*p=&quot; &lt;&lt;*p; ...

Почему выводится в виде таблицы и почему не работает сортировка - C++
почему выводится в виде таблицы? почему не работает сортировка? и как туда можно вставить классы комнат? hotel.h #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
15.02.2012, 21:25 #2
См. комментарии:
Цитата Сообщение от N.Kavt Посмотреть сообщение
class cl1
{
int n1,n2;
int M[n1max][n2max];
public:
cl1(int size1,int size2)
{
if (n1>0||n1<n1max) n1=size1;// а в переменной n1 какое значение?
else n1=n1max;
if (n2>0||n2<n2max) n2=size2;
else n2=n2max;
}
0
N.Kavt
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 19
15.02.2012, 21:29  [ТС] #3
вот кусочек программы, до объявления класса...
const n2max=5;
const n1max=10;

значение n1 сам ввожу..
0
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
15.02.2012, 21:33 #4
Цитата Сообщение от N.Kavt Посмотреть сообщение
значение n1 сам ввожу..
ну давайте пробежимся по коду как компьютер:
C++
1
2
3
4
5
6
7
8
int main()
 {
 int k1,k2;
 cout<<"Input N strok: ";
 cin>>k1;
 cout<<"Input N stolbcov: ";
 cin>>k2;
 cl1 objA(k1,k2);// вот из этой строки переходим....
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class cl1// переходим вот сюда
 {
 int n1,n2;
 int M[n1max][n2max];
 public:
 
 cl1(int size1,int size2)
 {
 if (n1>0||n1<n1max) n1=size1;// доходим дой этой строчки и .. где введенное Вами значение n1 ?
 else n1=n1max;
 if (n2>0||n2<n2max) n2=size2;
 else n2=n2max;
 }
0
N.Kavt
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 19
15.02.2012, 21:39  [ТС] #5
нууу... n1 ,будет равняться k1... или нет?
0
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
15.02.2012, 21:46 #6
Цитата Сообщение от N.Kavt Посмотреть сообщение
нууу... n1 ,будет равняться k1... или нет?
или нет.
C++
1
2
if (n1>0||n1<n1max) // кто писал этот код ошибся. Нужно было if (size1>0 && size1<n1max)
n1=size1;
0
N.Kavt
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 19
15.02.2012, 21:51  [ТС] #7
ага.. тут понятно...
Но я исправил, а массив У не выводится полностью...
0
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
15.02.2012, 21:53 #8
Цитата Сообщение от N.Kavt Посмотреть сообщение
Но я исправил, а массив У не выводится полностью...
а в 2-х строках ниже тоже самое для n2 исправили?
0
N.Kavt
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 19
15.02.2012, 21:57  [ТС] #9
да, исправил

Добавлено через 1 минуту
выводятся только 2 значения: 1 1

Добавлено через 38 секунд
а должно быть столько же сколько и элементов в матрице
0
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
15.02.2012, 22:05 #10
Цитата Сообщение от N.Kavt Посмотреть сообщение
выводятся только 2 значения: 1 1
Добавлено через 38 секунд
а должно быть столько же сколько и элементов в матрице
Выводится у меня столько сколько и задавали, следующая ошибка в void MyX()
Покажите полностью код.
0
N.Kavt
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 19
15.02.2012, 22:23  [ТС] #11
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
# include <math.h>
# include <conio.h>
# include <iostream.h>
# include <stdlib.h>
# include <stdio.h>
const n2max=5;
const n1max=10;
class cl1
{
int n1,n2;
int M[n1max][n2max];
public:
 
cl1(int size1,int size2)
{
if (size1>0&&size1<n1max) n1=size1;
else n1=n1max;
if (size2>0&&size2<n2max) n2=size2;
else n2=n2max;
}
 
void myinp()
{
randomize;
int i,j;
for(i=0;i<n1;i++){
for(j=0;j<n2;j++){
*(M[i]+j)=random(100);
}
}
}
 
 
 
 
void myout()
{
int i,j,x,y;
cout<<"The Matrix:";
for(i=0,y=4;i<n1;i++,y++){
for(j=0,x=1;j<n2;j++,x+=5){
gotoxy(x,y);
cout<<M[i][j];
}
}
}
 
void MyX(){
int *X,*Y,l1,l2,k;
l1=n1;
l2=n2;
k=l1*l2;
for (int j=0;j<l2;j++){
for (int i=1;i<=k;i++){
X[i+l2*j]=i;
}}
cout<<endl<<endl<<endl<<endl;
for(int i=1;i<=k;i++)
cout<<X[i]<<"   ";
}
 
 
 
void MyY(){
int *Y,l1,l2,k;
l1=n1;
l2=n2;
k=l1*l2;
for (int j=0;j<l2;j++){
for (int i=1;i<=k;i++){
Y[i+l2*j]=j+1;
}}
cout<<endl<<endl<<endl<<endl;
for(int i=1;i<=k;i++)
cout<<Y[i]<<"   ";
}
};
int main()
{
int k1,k2;
cout<<"Input N strok: ";
cin>>k1;
cout<<"Input N stolbcov: ";
cin>>k2;
cl1 objA(k1,k2);
objA.myinp();
objA.myout();
objA.MyX();
objA.MyY();
getch();
return 0;
}
Добавлено через 17 секунд
вот он полностью
0
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
15.02.2012, 22:31 #12
Вот так запустите и проверьте, что на экран выводится:
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 <math.h>
# include <conio.h>
# include <iostream.h>
# include <stdlib.h>
# include <stdio.h>
const n2max=5;
const n1max=10;
class cl1
{
int n1,n2;
int M[n1max][n2max];
public:
 
cl1(int size1,int size2)
{
if (size1>0&&size1<n1max) n1=size1;
else n1=n1max;
if (size2>0&&size2<n2max) n2=size2;
else n2=n2max;
}
 
void myinp()
{
randomize;
int i,j;
for(i=0;i<n1;i++){
for(j=0;j<n2;j++){
*(M[i]+j)=random(100);
}
}
}
 
 
 
 
void myout()
{
int i,j,x,y;
cout<<"The Matrix:";
for(i=0,y=4;i<n1;i++,y++){
for(j=0,x=1;j<n2;j++,x+=5){
gotoxy(x,y);
cout<<M[i][j];
}
}
}
 
 
};
int main()
{
int k1,k2;
cout<<"Input N strok: ";
cin>>k1;
cout<<"Input N stolbcov: ";
cin>>k2;
cl1 objA(k1,k2);
objA.myinp();
objA.myout();
 
getch();
return 0;
}
0
N.Kavt
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 19
15.02.2012, 22:37  [ТС] #13
Матрица, где я задаю количество строк и столбцов и рандомно заполняет
0
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
15.02.2012, 22:40 #14
Цитата Сообщение от N.Kavt Посмотреть сообщение
Матрица, где я задаю количество строк и столбцов и рандомно заполняет
т.е. выводятся все элементы матрицы на экран?
0
N.Kavt
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 19
15.02.2012, 22:44  [ТС] #15
Да, все
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2012, 22:44
Привет! Вот еще темы с ответами:

Почему выводится ноль? - C++
Помогите вывести на экран значение , что я не делал , чем я не пытался оно дает 0.Не надо рассказывать про count , меня интересует именно ...

Почему полностью не считывает текстовый файл? - C++
Задание: Текстовый файл содержит записи о телефонах и их владельцах. Переписать в другой файл телефоны тех владельцев, фамилии которых...

Почему выводится пустая очередь? - C++
Выводится пустая очередь. В чем ошибка? struct Queue { int item; Queue *next; }*Pbeg=NULL, *Pend=NULL; void queueFeel() { ...

Почему выводится неправильный год? - C++
В общем, проблема такая: На форуме нашел пример, как получить текущий год. У меня все запускается и работает, но проблема в том, что...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.02.2012, 22:44
Ответ Создать тему
Опции темы

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