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

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

Войти
Регистрация
Восстановить пароль
 
 
bootleanC
6 / 6 / 1
Регистрация: 28.04.2009
Сообщений: 106
#1

Массив - C++

14.10.2011, 12:56. Просмотров 1032. Ответов 29
Метки нет (Все метки)

помогите правильно заполнить массив чтобы элементы строки можно было вводить через пробел

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int n;
printf("Введите количество вершин:"); \\ массив будет в виде квадратной матрицы
int graf[n][n];
printf("Введите элементы в виде матрицы ребер графа, 1 - если есть ребро 0 - если ребра нет:"); \\задача  на графы
for(int i=0, i<n, ++i)
    for(int j=0, j<n, ++j)
    {
        scanf("%i", &graf[i][j]);
    }
for(int i=0, i<n, ++i)
    for(int j=0, j<n, ++j)
    {
        printf("%i", &graf[i][j]);
        printf("\n");
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2011, 12:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массив (C++):

Ввести массив А. В массив В перенести все элементы массива А, стоящие правее максимального элемента, и имеющие нечетный индекс. Массив В отсортировать - C++
Добрый Вечер! Написал первую часть программы по этому заданию&quot;Ввести массив А. В массив В перенести все элементы массива А, стоящие правее...

Массив: Как скопировать двумерный массив в другой массив? - C++
Как скопировать двумерный массив в другой массив?

Дан массив целых чисел,произвести для него следующие операции: для каждого из чисел ,входящего в массив,указать,сколько раз оно входит в массив... - C++
помогите!!!((( дан массив целых чисел,произвести для него следующие операции: для каждого из чисел ,входящего в массив,указать,сколько...

Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. - C++
Есть текстовый файл, в нем 3 столбца чисел (число строк заранее неизвестно). Напишите пожалуйста код, чтобы первый столбец записывался в...

Массив: сформировать массив C[12] так, чтобы элементы располагались следующим образом: A(1) B(1) A(2) B(2) - C++
из массивов A и B сформировать массив C так, чтобы элементы массива располагались следующим образом: A(1) B(1) A(2) B(2) и т.д.

Массив: найти номера столбцов с положительными элементами и записать их в одномерный массив - C++
ввести двумерный массив I . найти номера столбцов с положительными элементами и записать их в одномерный массив, отобразить его на экране. ...

29
bootleanC
6 / 6 / 1
Регистрация: 28.04.2009
Сообщений: 106
15.10.2011, 21:36  [ТС] #16
то есть создать так просто двумерный динамически массив не получиться???

Добавлено через 52 секунды
aeshes, нет пишу на С++, а разве не используют для ввода информации scanf, а для вывода printf???
0
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
15.10.2011, 21:37 #17
Цитата Сообщение от bootleanC Посмотреть сообщение
то есть создать так просто двумерный динамически массив не получиться???
aeshes вам любезно показала как это делается
0
aeshes
440 / 203 / 13
Регистрация: 07.10.2011
Сообщений: 462
15.10.2011, 21:37 #18
printf, scanf - это функции из С, а в С++ для ввода/вывода используются потоки cin и cout из библиотеки iostream
C++
1
2
3
int a;
cin>>a; //ввести значение а
cout<<"You entered: "<<a; //вывести текст и значение а

Не по теме:

P.S. Похоже, ваш преподаватель тоже не различает С и С++

0
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
15.10.2011, 21:40 #19
Цитата Сообщение от aeshes Посмотреть сообщение

Не по теме:

P.S. Похоже, ваш преподаватель тоже не различает С и С++

Не по теме:

Да уж, aeshes, ужас полный

0
bootleanC
6 / 6 / 1
Регистрация: 28.04.2009
Сообщений: 106
15.10.2011, 21:49  [ТС] #20
что то я все равно не въезжаю((
C++
1
2
3
4
5
6
7
int n;
printf("Введите количество вершин:\n");
scanf("%i",&n);
int **a=new int*[n];
for(int i=0;i<n;i++)6
   a[i]=new int[n];
int a[n][n];
Добавлено через 2 минуты
я канеш понимаю что туплю и мало знаю...но блин если не сложно исправьте код как должно быть...буду очень благодарен))
0
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
15.10.2011, 21:50 #21
как минимум, уберите строку 8.
0
aeshes
440 / 203 / 13
Регистрация: 07.10.2011
Сообщений: 462
15.10.2011, 21:56 #22
твоя программа в стиле С++ (динамическое выделение памяти и ввод/вывод через потоки)

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
#include<iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"Russian");
int n;
cout<<"Введите количество вершин: ";
cin>>n;
int **a=new int*[n];
for(int i=0;i<n;i++)
   a[i]=new int[n];
cout<<"Введите элементы в виде матрицы ребер графа, 1 - если есть ребро 0 - если ребра нет:\n";
 
for(int i=0, i<n, ++i)
   for(int j=0, j<n, ++j)
      cin>>a[i][j];
 
for(int i=0, i<n, ++i)
{   
   for(int j=0, j<n, ++j)
      cout<<a[i][j]<<" ";
   cout<<"\n";
}
 
for(int i=0;i<n;i++)
   delete []a[i];
delete []a;
return 0;
}
0
bootleanC
6 / 6 / 1
Регистрация: 28.04.2009
Сообщений: 106
15.10.2011, 22:05  [ТС] #23
aeshes, ввел как вы сказали...пишет что не объявленный идентификатор

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 "stdafx.h"
#include "iostream"
 
 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"Russian");
int n;
cout<<"Введите количество вершин: ";
cin>>n;
int **a=new int*[n];
for(int i=0;i<n;i++)
   a[i]=new int[n];
cout<<"Введите элементы в виде матрицы ребер графа, 1 - если есть ребро 0 - если ребра нет:\n";
 
for(int i=0, i<n, ++i)
   for(int j=0, j<n, ++j)
      cin>>a[i][j];
 
for(int i=0, i<n, ++i)
{   
   for(int j=0, j<n, ++j)
      cout<<a[i][j]<<" ";
   cout<<"\n";
}
int v1[5],v2[5];
int k=1;
for (int i=0,i<n,++i)
    for(int j=0,j<n,++j)
    {
        if(a[i][j]==1)
        {
            if(((int m=k%2)==0)
            {
                V1+=j+1;
            }
            else
            {
                V2+=j+1;
            }
            k=k+1;
        }
    }
for(int i=0;i<n;i++)
   delete []a[i];
delete []a;
return 0;
}
0
aeshes
440 / 203 / 13
Регистрация: 07.10.2011
Сообщений: 462
15.10.2011, 22:09 #24
кто необъявленный идентификатор? cin/cout?
Библиотеку iostream подключайте в угловых скобках <>
и куда делась строка
C++
1
using namespace std;
?

И кстати, создавая консольный проект, ставьте галочку "пустой", чтоб не подключались всякие файлы stdafx
0
bootleanC
6 / 6 / 1
Регистрация: 28.04.2009
Сообщений: 106
15.10.2011, 22:26  [ТС] #25
пишет что j не объявленный идентификатор в строке 33, 37, 41

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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"Russian");
int n;
cout<<"Введите количество вершин: ";
cin>>n;
int **a=new int*[n];
for(int i=0;i<n;i++)
   a[i]=new int[n];
cout<<"Введите элементы в виде матрицы ребер графа, 1 - если есть ребро 0 - если ребра нет:\n";
 
for(int i=0, i<n, ++i)
   for(int j=0, j<n, ++j)
      cin>>a[i][j];
 
for(int i=0, i<n, ++i)
{   
   for(int j=0, j<n, ++j)
      cout<<a[i][j]<<" ";
   cout<<"\n";
}
int v1[20],v2[20];
int k=1;
int m;
for (int i=0,i<n,++i)
    for(int j=0,j<n,++j)
    {
        if(a[i][j]==1)
        {
            if(( m=k%2)==0)
            {
                v1+=j+1;
            }
            else
            {
                v2+=j+1;
            }
            k=k+1;
        }
    }
for(int i=0;i<n;i++)
   delete []a[i];
delete []a;
return 0;
}
0
aeshes
440 / 203 / 13
Регистрация: 07.10.2011
Сообщений: 462
15.10.2011, 22:44 #26
ой, это я у вас скопировала программу и только ввод-вывод поменяла и массив сделала динамическим.
Там во всех заголовках цикла for должны стоять ; а не запятые
C++
1
2
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
0
Thinker
15.10.2011, 22:49
  #27

Не по теме:

bootleanC, книжки - неисчерпаемый кладезь знаний!!! Почему бы не воспользоваться им

1
bootleanC
6 / 6 / 1
Регистрация: 28.04.2009
Сообщений: 106
15.10.2011, 23:36  [ТС] #28
спасибо вроде заработал ввод...осталось сделать 2ую часть программы...определить те элементы в которых стоял единицы и записать их порядковые номера по очереди сначало в один одномерный массив потом в другой
0
bootleanC
6 / 6 / 1
Регистрация: 28.04.2009
Сообщений: 106
16.10.2011, 20:27  [ТС] #29
вот вроде сделал...
тут возникает еще один вопрос...я хочу заполнить два одномерных массива индексами(индексом) элемента a[i][j], по очереди...то бишь компилятор если дошел до элемента массива a[i][j] который равен одному, то он записывает цифру которой сейчас равен индекс j(соответственно +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
48
49
50
51
52
53
54
55
56
57
58
59
60
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"Russian");
int n;
cout<<"Введите количество вершин: ";
cin>>n;
int **a=new int*[n];
for(int i=0;i<n;i++)
   a[i]=new int[n];
cout<<"Введите элементы в виде матрицы ребер графа, 1 - если есть ребро 0 - если ребра нет:\n";
 
for(int i=0; i<n; ++i)
   for(int j=0; j<n; ++j)
      cin>>a[i][j];
 
for(int i=0; i<n; ++i)
{   
   for(int j=0; j<n; ++j)
      cout<<a[i][j]<<" ";
   cout<<"\n";
}
int v1[20],v2[20];
int k=1;
int m;
for (int i=0;i<n;++i)
    for(int j=0;j<n;++j)
    {
        if(a[i][j]==1)
        {
            if(( m=k%2)==0)
            {
                v1[k]+=j+1;
            }
            else
            {
                v2[k]+=j+1;
            }
            k=k+1;
        }
    }
 
for(int i=0; i<n; ++i)
{   
      cout<<v1[i]<<" ";
   cout<<"\n";
}
for(int i=0; i<n; ++i)
{   
      cout<<v1[i]<<" ";
   cout<<"\n";
}
for(int i=0;i<n;i++)
   delete []a[i];
delete []a;
return 0;
}
0
Миниатюры
Массив  
bootleanC
6 / 6 / 1
Регистрация: 28.04.2009
Сообщений: 106
17.10.2011, 08:21  [ТС] #30
вот почему он выводит по пять раз сначала массив v1 а потом v2????
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2011, 08:21
Привет! Вот еще темы с ответами:

с клавиатуры ввести массив,во второй массив записать нечетные элементы из первого - C++
с клавиатуры ввести массив,во второй записать нечетные элеиенты из первого.В третий массив записать четные элементы, стоящие на нечетных...

Массив: Переместить в массив Y все числа, дробная часть которых больше 5. - C++
Помогите решить, вообще не понимаю как в С++ с дробной частью работать. Задан массив X(N) дробных чисел. Переместить в массив Y все...

Можно ли в классе создавать массив переменной длинны. Например динамический массив? - C++
Динамические массивы привлекают больше. :)

Заполнить массив первыми ста простыми числами, и вывести массив на экран - C++
Объявите одномерный целочисленный массив в котором не более 100 элементов выполните генерацию массива первыми 100 простыми числами....


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

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

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