3 / 3 / 0
Регистрация: 07.02.2011
Сообщений: 12
1

Объявить многомерный массив из N*3 и ввести данные в него

20.02.2011, 15:17. Показов 2014. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача объявить многомерный массив из N*3 и ввести данные в него. Пишу на Си.
Объявляю:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#define kolvo 50
void main()
{
int stat[3],number[kolvo],sum[kolvo],balans[kolvo];
 
int *u_number;
int *u_sum;
int *u_balans;
 
 
.... 
 
}
А вот на месте .... самое интересное. у меня бфло несколько вариантов как реализовать. вот последний на котором моя логика уже начала меня посылать.

C
1
2
3
4
5
6
7
u_number=&number;
u_sum=&sum;
u_balans=&balans;
 
stat[0]=u_number;
stat[1]=u_sum;
stat[2]=u_balans;
Ошибок не выдает на этом этапе, только ворнинги:
Код
warning: assignment makes integer from pointer without a cast|
все начинается после:

C
1
2
3
**(stat+i)=0;
*(*(stat+1)+i)=0;
*(*(stat+2)+i)=0;
Ошибки:

Код
error: invalid type argument of 'unary *' (have 'int')|
Я понимаю как работают указатели, но я в упор не могу понять почему не работает этот код. Если моя логика верна (хотя я сильно в этом сомневаюсь), то должно работать правильно. Может какие нибудь ошибки в описании а не в логике?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.02.2011, 15:17
Ответы с готовыми решениями:

Как ввести данные в многомерный заданный массив?
Здравствуйте! Задал многомерный массив массивов. Фактически хочу создать список матриц размером...

Как объявить многомерный массив?
Как объявить многомерный массив так чтоб к нему можно было обратиться из других форм? Например...

Как объявить внутри своего класса многомерный массив?
И вообще, возможно ли это? Задачи по порядку: Объявить внутри класса: 1) Одномерный массив...

Как объявить многомерный массив и сразу инициализировать его?
Методом проб выяснил, что объявить и сразу проинициализировать многомерный массив можно так (пример...

10
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
20.02.2011, 15:28 2
Так и не понял, что тебе не понятно.
1
3 / 3 / 0
Регистрация: 07.02.2011
Сообщений: 12
20.02.2011, 15:30  [ТС] 3
Мне не понятно как заставить это работать. А точнее как мне создать многомерный массив и как с ним работать.
0
101 / 88 / 7
Регистрация: 17.12.2010
Сообщений: 416
20.02.2011, 15:33 4
где здесь многомерный массив.

Добавлено через 2 минуты
может быть начать вот с этого?
C++
1
int a[10][10][10][10];
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
20.02.2011, 15:33 5
Надо было stat объявить как
C
1
int *stat[3];
Потом:
C
1
2
3
4
5
6
7
u_number = number;
u_sum = sum;
u_balans = balans;
 
stat[0] = u_number;
stat[1] = u_sum;
stat[2] = u_balans;
А можно было сразу так:
C
1
2
3
stat[0] = number;
stat[1] = sum;
stat[2] = balans;
1
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
20.02.2011, 15:34 6
Кстати, на сях формально нет таких массивов. А int a[10][10] - массив массивов.
0
3 / 3 / 0
Регистрация: 07.02.2011
Сообщений: 12
20.02.2011, 15:47  [ТС] 7
Я переписал. в результате начинает работать, зависает и выкидывает с ошибкой. типа приложение было завершено.
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
#include <stdio.h>
#define kolvo 50
 
 
 
void main()
{
int *stat[3],number[kolvo],sum[kolvo],balans[kolvo];
int i;
int *u_number;
int *u_sum;
int *u_balans;
int flag,temp;
 
u_number=number;
u_sum=sum;
u_balans=balans;
stat[0]=u_number;
stat[1]=u_sum;
stat[2]=u_balans;
i=0;
for(i=0;i<kolvo;++i)
{
**(stat+i)=0;
*(*(stat+1)+i)=0;
*(*(stat+2)+i)=0;
}
for(i=0;i<=kolvo;++i)
{
    printf("bla bla bla \n",i);
    scanf("%d",&temp);
    printf("chto poluchil %d \n",temp);
    *(*(stat+1)+i)=temp;
    printf("banana banana banana  %d \n", *(*(stat+1)+i));
}
system("pause");
return;
}
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
20.02.2011, 16:01 8
Это
C
1
**(stat+i)=0;
Заменить на это
C
1
*(*stat+i)=0;
1
3 / 3 / 0
Регистрация: 07.02.2011
Сообщений: 12
20.02.2011, 16:07  [ТС] 9
Ооооо. спасибо огромное.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
21.02.2011, 10:22 10
C
1
for(i=0;i<=kolvo;++i)
выход за край
1
3 / 3 / 0
Регистрация: 07.02.2011
Сообщений: 12
21.02.2011, 23:18  [ТС] 11
Спасибо
0
21.02.2011, 23:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.02.2011, 23:18
Помогаю со студенческими работами здесь

Дан массив чисел, необходимо ввести в него и вывести из него числа с помощью указателей
Дан массив чисел, необходимо ввести в него и вывести из него числа с помощью указателей.

Не могу загнать данные из БД в многомерный массив
Здравствуйте! Никак не получается правильным образом загнать данные в многомерный массив из БД...

Объявить двумерный динамический массив, а после выделить память под него
Подскажите, как объявить двумерный динамический массив, а после выделить память под него. Пытался...

Считать табличные данные из текстового файла в многомерный массив
Есть таблица данных вида: назвБолезнь1|симптомБолез1|назвЛекар1|250...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru