Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
N.Kavt
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 19
1

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

15.02.2012, 21:17. Просмотров 1150. Ответов 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
Ответы с готовыми решениями:

Не соображу почему не выводится массив
Код: #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; using...

Почему неправильно выводится массив?
Не пойму... массив arr выводится неправильно, если его выводить в...

Почему выводится весь массив
Доброго времени суток! Прошу прощения за нубский вопорс, но окончательно...

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

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

20
valeriikozlov
Эксперт С++
4687 / 2513 / 751
Регистрация: 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
Эксперт С++
4687 / 2513 / 751
Регистрация: 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
Эксперт С++
4687 / 2513 / 751
Регистрация: 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
Эксперт С++
4687 / 2513 / 751
Регистрация: 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
Эксперт С++
4687 / 2513 / 751
Регистрация: 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
Эксперт С++
4687 / 2513 / 751
Регистрация: 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
Эксперт С++
4687 / 2513 / 751
Регистрация: 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
valeriikozlov
Эксперт С++
4687 / 2513 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
15.02.2012, 22:49 16
Тогда идем дальше:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void MyX(){
 int *X,*Y,l1,l2,k;// здесь созданы два указателя на int - X и Y
 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 MyX() ?
0
N.Kavt
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 19
15.02.2012, 22:59  [ТС] 17
В Void MyX я хотел каждому элементу матрицы присвоить свои значения координаты x на плоскости. В Void MyY соответственно свои игрики...
0
valeriikozlov
Эксперт С++
4687 / 2513 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
15.02.2012, 23:06 18
Ну создали бы тогда рядышком с созданием массива: int M[n1max][n2max]; еще два массива X[n1max][n2max], Y[n1max][n2max].
А координаты на плоскости связаны как-то с номером строки и столбца, в которых расположен элемент массива?
0
N.Kavt
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 19
15.02.2012, 23:11  [ТС] 19
да, номер строки - у, столбца - х...
0
valeriikozlov
Эксперт С++
4687 / 2513 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
15.02.2012, 23:25 20
Цитата Сообщение от N.Kavt Посмотреть сообщение
да, номер строки - у, столбца - х...
Тогда заполнение можно сделать так:
C++
1
2
3
4
5
6
void MyX(){
    int i,j;
 for(i=0;i<n1;i++)
     for(j=0;j<n2;j++)
         X[i][j]=i;
 }
по аналогии void MyY()
0
15.02.2012, 23:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2012, 23:25

Результат не выводится полностью в консоль
Народ, при выводе результатов вычислений таблицы умножения через цикл числа &quot;a&quot;...

Почему выводится в виде таблицы и почему не работает сортировка
почему выводится в виде таблицы? почему не работает сортировка? и как туда...

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


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

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

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