|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.12.2009, 20:06 | #1 |
Форумчанин
Регистрация: 02.11.2009
Сообщений: 179
|
обращение к элементам двумерного массива на С++
к каждому элементу нужно обращаться через указатель со *
#include<stdio.h> #include<conio.h> #include<stdlib.h> #include<clocale> int main () { setlocale(LC_ALL, "Russian"); int i,j; int mas[10][6]; int* masp[10]; for (i=0;i<=9;i++) { masp[i] = mas[i]; // а должно быть *masp[i]=&mas[i] } int *Mas[j]=&masp; for (j=0;j<=5;j++) *(Mas+j)=rand()%200-100 ; { printf("\n"); for (j=0;j<=5;j++) printf(" %d",*(Mas+j)); } for (j=0;j<=5;j++) { if (*(Mas+j)<0) *(Mas+j)=-*(Mas+j); else *(Mas+j)=*(Mas+j); } printf("\n \n \n \n"); {printf(" \n"); for (j=0;j<=5;j++) printf(" %d",*(Mas+j));} getch(); } программа должна просто заменять отрицательные элементы на положительные но никак не пому че делать со строкой на которой коммент потому что без * она работает а нужно обязательно со * |
05.12.2009, 20:07 | #2 |
Форумчанин
Регистрация: 02.11.2009
Сообщений: 179
|
таким образом обращение производится только через указатель
|
05.12.2009, 20:20 | #3 |
Форумчанин
Регистрация: 02.11.2009
Сообщений: 179
|
да и вообще если честно прга кривоватая чет никак не додумаюсь как получше написать
|
05.12.2009, 20:26 | #4 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
*a - это разыменование указателя( его значение)
a - его адресс *(a+i) эквивалент a[i] программа написана настолько неопрятно, что читать не хочется =) всмысле загони код в тег CODE с каким массивом тебе надо работать(отриц на полож мменять) однмерным или двумерным ? Последний раз редактировалось NiCola999; 05.12.2009 в 20:29. |
05.12.2009, 20:31 | #5 |
Форумчанин
Регистрация: 02.11.2009
Сообщений: 179
|
#include<stdio.h>
#include<conio.h> #include<stdlib.h> #include<clocale> int main () { setlocale(LC_ALL, "Russian"); int i,j; int mas[10][6]; int* masp[10]; for (i=0;i<=9;i++) { masp[i] = mas[i]; // а должно быть *masp[i]=&mas[i] } int *Mas[j]=&masp; for (j=0;j<=5;j++) *(Mas+j)=rand()%200-100 ; { printf("\n"); for (j=0;j<=5;j++) printf(" %d",*(Mas+j)); } for (j=0;j<=5;j++) { if (*(Mas+j)<0) *(Mas+j)=-*(Mas+j); else *(Mas+j)=*(Mas+j); } printf("\n \n \n \n"); {printf(" \n"); for (j=0;j<=5;j++) printf(" %d",*(Mas+j));} getch(); } |
05.12.2009, 20:34 | #6 |
Форумчанин
Регистрация: 02.11.2009
Сообщений: 179
|
массив двумерный и для него создается массив указателей
Последний раз редактировалось серг; 05.12.2009 в 20:42. Причина: один и тот же текст |
05.12.2009, 20:35 | #7 |
Форумчанин
Регистрация: 02.11.2009
Сообщений: 179
|
ошибка в написании
Последний раз редактировалось серг; 05.12.2009 в 20:41. Причина: один и тот же текст |
05.12.2009, 20:35 | #8 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
выдели код и нажми # на панели
|
05.12.2009, 20:36 | #9 |
Форумчанин
Регистрация: 02.11.2009
Сообщений: 179
|
Код:
|
05.12.2009, 20:37 | #10 |
Форумчанин
Регистрация: 02.11.2009
Сообщений: 179
|
загнал таки прост тупанул сначала
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обращение к элементам массива через указатель в С++ | серг | Помощь студентам | 1 | 24.11.2009 01:30 |
обращение к элементам двумерного массива через указатели в С ++ | серг | Помощь студентам | 0 | 23.11.2009 22:43 |