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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.93
Vasal
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 55
#1

Двумерный массивы. - C++

13.06.2010, 12:22. Просмотров 1885. Ответов 34
Метки нет (Все метки)

Помогите пожалуйста!!!!нужно написать программу:

Латинский квадрат. Латинским квадратом порядка n называется квадратная таблица размером nxn, каждая строка и каждый столбец которой содержат все числа от 1 до n. Проверить, является ли заданная целочисленная матрица латинским квадратом.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2010, 12:22     Двумерный массивы.
Посмотрите здесь:

Двумерный массивы - C++
Доброго времени суток. Помогите пожалуйста разобраться что не так в этой функции удаления: int Del(int **L,int n1,int m1) { ...

Двумерный и одномерный массивы С++ - C++
1. Дан одномерный массив x1, x2,…,xn. Заменить все четные элементы их квадратами. 2. Дан одномерный массив x1, x2,…,xn. Все...

Массивы(двумерный и одномерные) - C++
Вот две задачи.... 1:Заданы два массива{xi} и {yi} (i=от 1 до n). Сформировать массив{cj} по правилу cj=yi+xi,если xi>yi ...

одномерный и двумерный массивы - C++
1.составить алгоритм,с помощью одномерного массива Заполнить массив числами 2.1, 2.2, 2.3, …, 2.18. 2.составить алгоритм,с помощью...

одномерный и двумерный массивы, строки - C++
3. Строки Дана строка из символов латинского алфавита. Замените все вхождения строки "two" на символ '2 4. Одномерный массив...

Отсортировать одномерный и двумерный массивы - C++
Отсортировать одномерный и двумерный массивы методом пузырька по возрастанию. Заранее спасибо!!!

Массивы: построить двумерный массив из одномерного - C++
Задан массив Х размером N . сформировать из него матрицу А, содержащую по L элементов в строке. недостающие элементы в последней строке...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,250
Записей в блоге: 1
Завершенные тесты: 1
13.06.2010, 18:20     Двумерный массивы. #16
Я ТАКООЕ написал, это называется г..нокод, я такое даже выкладывать не хочу. Сижу привожу в более менее нормальный вид. Можетпо-позже выложу)

Цитата Сообщение от Scythian Посмотреть сообщение
Kastaneda:
Я может что-то не понял, но у тебя в прототипе объявлен одномерный массив, а ты туда матрицу кидаешь. Может это??
Да там заморочки с указателем. Указатель на двумерный массив не может индексироваться (проверенно опытным путем)) как двумерный массив.

Добавлено через 1 час 0 минут
Вобщем не так красиво, как хотелось бы, но работает:
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<iostream>
using namespace std;
bool bcount(int*,int);
void count0(int*,int);
int main () {
    int n;
    cout<<"Enter n : ";
    cin>>n;
    int qrt[50][50];  // не удается создать массив N*N
    cout<<"Enter matrix : "<<endl;
    for(int i=0;i<n;i++){
       for(int j=0;j<n;j++)
          cin>>qrt[i][j];
   }
   int count[n+1];
   count0(count,n+1);
   for(int i=0;i<n;i++){  // смотрим строки
      for(int j=0;j<n;j++)
          ++count[qrt[i][j]];
   if (!bcount(count,n+1)){
       cout<<"Matrix is not Latin square"<<endl;
       system ("pause");
       return 0;}
   count0(count,n+1);
   }
   for(int i=0;i<n;i++){  // смотрим столбцы
      for(int j=0;j<n;j++)
          ++count[qrt[j][i]];
         
   if (!bcount(count,n+1)){
       cout<<"Matrix is not Latin square"<<endl;
       system ("pause");
       return 0;}
   count0(count,n+1);
   }
   cout<<"Matrix is Latin square";
   cout<<endl;
   system ("pause");
   return 0;
} 
bool bcount(int *mas, int n) {
    for(int i=1;i<n;i++){
    if(mas[i]==0)return false;}
    return true; }  
void count0(int *mas, int n){
    for(int i=0;i<=n;i++)
       mas[i]=0;}
За то я понял, что не умею работать с двумерными массивами)

Добавлено через 1 минуту
да, еще я английским не в ладах, если что, фразы подправь)
Vasal
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 55
13.06.2010, 18:23  [ТС]     Двумерный массивы. #17
я так понимаю, что после 47 строчки, просто вывод???
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,250
Записей в блоге: 1
Завершенные тесты: 1
13.06.2010, 18:25     Двумерный массивы. #18
Цитата Сообщение от Vasal Посмотреть сообщение
я так понимаю, что после 47 строчки, просто вывод???
??? Это код полностью, 47-ая строка - это конец.
Vasal
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 55
13.06.2010, 18:29  [ТС]     Двумерный массивы. #19
мммм, у мя чет кое какие ошибки выдает:

Ошибка 1 error C2057: требуется константное выражение
Ошибка 2 error C2466: невозможно выделить память для массива постоянного нулевого размера
Ошибка 3 error C2133: count: неизвестный размер
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,250
Записей в блоге: 1
Завершенные тесты: 1
13.06.2010, 18:41     Двумерный массивы. #20
А в каких строках?
По поводу count, сделай так
C++
1
int count[51];
По этой же причине не создается матрица N*N, поэтому пришлось делать 50*50
Scythian
58 / 58 / 8
Регистрация: 01.01.2010
Сообщений: 222
13.06.2010, 18:46     Двумерный массивы. #21
или можна так выделить память под ен элементов.
C++
1
2
3
*qrt=new int[n];
for(int i=0;i<n;i++)
    qrt[i]=new int[n];
Vasal
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 55
13.06.2010, 18:52  [ТС]     Двумерный массивы. #22
вот сдесь вот ошибка:
C++
1
int count[n+1];
все 3 ошибки
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,250
Записей в блоге: 1
Завершенные тесты: 1
13.06.2010, 18:53     Двумерный массивы. #23
Можно и так, только вот это
C++
1
2
for(int i=0;i<n;i++)
    qrt[i]=new int[n];
зачем?

Добавлено через 51 секунду
Цитата Сообщение от Vasal Посмотреть сообщение
вот сдесь вот ошибка:
C++
1
int count[n+1];
Я же говорю, сделай вместо n константу

C++
1
int count[51];
Scythian
58 / 58 / 8
Регистрация: 01.01.2010
Сообщений: 222
13.06.2010, 18:56     Двумерный массивы. #24
А как? Нужно ведь выделить место для элементов. Их же куда-то вводить надо. А так получается одномерный массив указателей.
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,250
Записей в блоге: 1
Завершенные тесты: 1
13.06.2010, 18:58     Двумерный массивы. #25
C++
1
int *qrt=new int[n]
указатель на массив
Scythian
58 / 58 / 8
Регистрация: 01.01.2010
Сообщений: 222
13.06.2010, 18:59     Двумерный массивы. #26
ну да. Но элементы массива - указатели. Там же объявление
int qrt[50][50] то есть **qrt.
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,250
Записей в блоге: 1
Завершенные тесты: 1
13.06.2010, 19:07     Двумерный массивы. #27
Цитата Сообщение от Scythian Посмотреть сообщение
ну да. Но элементы массива - указатели. Там же объявление
int qrt[50][50] то есть **qrt.
Как я написал, элементы массива INT, в твоем цикле, да, указатели, но нам ведь это не надо)

Добавлено через 2 минуты
На твое сообщение после редактирования:
ну да, можно было и так)
Scythian
58 / 58 / 8
Регистрация: 01.01.2010
Сообщений: 222
13.06.2010, 19:07     Двумерный массивы. #28
Да?
Ну извини я не очень вник в прогу если честно((((
Vasal
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 55
13.06.2010, 19:21  [ТС]     Двумерный массивы. #29
блин, а я чет ваще запутался. терь даже не знаю как правильно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2010, 19:21     Двумерный массивы.
Еще ссылки по теме:

Объявить одномерный и двумерный динамические массивы целых чисел. Написать процедуры для заполнения их случайными значениями - C++
в С++ Объявить одномерный и двумерный динамические массивы целых чисел. Написать процедуры для заполнения их случайными значениями и...

Двумерный массивы - Turbo Pascal
В матрице найти столбец, в котором произведение минимального элемента на максимальный больше заданной величины А. Разделить элементы строки...

Двумерный массивы - Pascal
Заполнить двумерный массив кубами натуральных чисел

Массивы (одномерный и двумерный) - Delphi
задача: дан массив чисел a(n). вывести массив b(n), в котором bi=a1+a2+..+ai, i=1,2..n перебробовала всякие варианты, в итоге чушь...

Одномерный и двумерный массивы. - Pascal
Одномерные массивы: Двумерные массивы: Помогите, пожалуйста. с решением задач. Буду очень, просто невероятно признателен.


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

Или воспользуйтесь поиском по форуму:
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
13.06.2010, 19:21     Двумерный массивы. #30
латинский квадрат
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream.h>
#include <conio.h>
int main()
{
        int **masiv, n, i, j;
        std::cout<<"Enter number= ";
        std::cin>>n;
        masiv=new int*[n];
     for(i=0; i<n; i++)
       masiv[i]=new int[n];
        for(i=0; i<n; i++)
                for(j=0; j<n; j++)
                        masiv[i][j]=(i+j)%n+1;
        for(i=0; i<n; i++)
        {
                for(j=0; j<n; j++)
                        std::cout<<masiv[i][j]<<" ";
                std::cout<<endl;
        }
  return 0;
}
Yandex
Объявления
13.06.2010, 19:21     Двумерный массивы.
Ответ Создать тему
Опции темы

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