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

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

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

Массив - C++

14.10.2011, 12:56. Просмотров 1028. Ответов 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 . найти номера столбцов с положительными элементами и записать их в одномерный массив, отобразить его на экране. ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
14.10.2011, 12:59 #2
Это для вывода
C
1
2
3
4
5
6
for(int i=0, i<n, ++i)
{   
   for(int j=0, j<n, ++j)
      printf("%d ", graf[i][j]);
   printf("\n");
}
Для ввода
C
1
2
3
for(int i=0, i<n, ++i)
   for(int j=0, j<n, ++j)
      scanf("%d", &graf[i][j]);
1
bootleanC
6 / 6 / 1
Регистрация: 28.04.2009
Сообщений: 106
14.10.2011, 13:13  [ТС] #3
хм...а почему стоит %d у меня ведь массив описан как int
0
garkeP91
50 / 50 / 5
Регистрация: 24.10.2010
Сообщений: 131
14.10.2011, 13:21 #4
В вашем случае между %i и %d нет особой разницы. Просто в основном для целых (Как у вас) пишут &d везде, по умолчанию ))
Вот в чем разница:
%d Ожидается ввод целого числа, аргумент -указатель должен быть указателем на int.
%i Ожидается ввод целого числа. Если число начинается с 0, оно воспринимается как восьмеричное. Если число начинается с 0x или 0X, оно шестнадцатиричное. Аргумент должен быть указателем на int.
1
bootleanC
6 / 6 / 1
Регистрация: 28.04.2009
Сообщений: 106
14.10.2011, 13:29  [ТС] #5
понятно сейчас попробую
0
bootleanC
6 / 6 / 1
Регистрация: 28.04.2009
Сообщений: 106
15.10.2011, 21:06  [ТС] #6
что то ошибка...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int _tmain(int argc, _TCHAR* argv[])
{
int n;
printf("Введите количество вершин:\n");
scanf("%i",n);
int a[n][n];
printf("Введите элементы в виде матрицы ребер графа, 1 - если есть ребро 0 - если ребра нет:");
 
for(int i=0, i<n, ++i)
   for(int j=0, j<n, ++j)
      scanf("%d", &a[i][j]);
 
for(int i=0, i<n, ++i)
{   
   for(int j=0, j<n, ++j)
      printf("%d ", a[i][j]);
   printf("\n");
}
return 0;
}
0
aeshes
440 / 203 / 13
Регистрация: 07.10.2011
Сообщений: 462
15.10.2011, 21:10 #7
bootleanC, какая ошибка?

Не по теме:

Вы думаете, мы телепатически должны угадать, что именно не работает? Неужели так сложно указать источник ошибки - компилятор ругается на строку такую-то с сообщением таким-то или выводит не то, что нужно, и т.п.

0
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
15.10.2011, 21:13 #8
Конечно, ошибка, а кто массив двумерный будет правильно задавать?

Цитата Сообщение от bootleanC Посмотреть сообщение
C++
1
2
3
4
int n;
printf("Введите количество вершин:\n");
scanf("%i",n);
int a[n][n];
Это неверно
1
bootleanC
6 / 6 / 1
Регистрация: 28.04.2009
Сообщений: 106
15.10.2011, 21:18  [ТС] #9
компилятор ругается что типо нельзя создать нулевой массив...получаеться нельзя создать массив заранее не определив его размерность???
0
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
15.10.2011, 21:19 #10
Цитата Сообщение от bootleanC Посмотреть сообщение
компилятор ругается что типо нельзя создать нулевой массив...получаеться нельзя создать массив заранее не определив его размерность???
Конечно. либо int **a - динамический двумерный массив, либо int a[100][200], например
0
bootleanC
6 / 6 / 1
Регистрация: 28.04.2009
Сообщений: 106
15.10.2011, 21:21  [ТС] #11
а в чем отличие динамического массива от простого? я с ним смогу работать так же как и с простым???
0
aeshes
440 / 203 / 13
Регистрация: 07.10.2011
Сообщений: 462
15.10.2011, 21:24 #12
да. после того, как выделите под него память, вся работа будет как с обычным массивом. нужно просто в конце, когда он вам уже не нужен, не забыть освободить эту память
0
bootleanC
6 / 6 / 1
Регистрация: 28.04.2009
Сообщений: 106
15.10.2011, 21:27  [ТС] #13
получаеться как то так???
C++
1
int** a= new[n][n];
Добавлено через 1 минуту
aeshes, скажи как освободить эту память...на будующее
0
aeshes
440 / 203 / 13
Регистрация: 07.10.2011
Сообщений: 462
15.10.2011, 21:29 #14
C++
1
2
3
4
5
6
7
8
9
10
//ввод n
//выделение памяти
int **x=new int*[n];
for(int i=0;i<n;i++)
   x[i]=new int[n];
 
//освобождение
for(int i=0;i<n;i++)
  delete [] x[i];
delete []x;
Но это в С++, а вы пишете на С, судя по используемым printf и scanf (или на каком-то гибриде из них?). В С вам подойдут функции malloc и calloc для выделения и функция free для освобождения
0
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
15.10.2011, 21:30 #15
Цитата Сообщение от bootleanC Посмотреть сообщение
получаеться как то так???
C++
1
int** a= new[n][n];
не-не-не, более хитро. сначала создается массив указателей, а потом одномерные массивы. Лучше пока со статическим работайте.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2011, 21:30
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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