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

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

Войти
Регистрация
Восстановить пароль
 
NikoX_93
10 / 10 / 3
Регистрация: 22.11.2011
Сообщений: 82
Записей в блоге: 1
#1

Как работают указатели с массивами - C++

01.11.2012, 08:40. Просмотров 320. Ответов 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
#include<stdio.h>
#include<math.h>
#include<conio.h>
#define N 20
main()
{
      extern void swap(int k,int l,int a);
      int a[N+1],k,l,i,n;
      printf("\n Vvedite razmer n: \n");
      scanf("%d",&n);
      printf("\n Vvedite massiv A: \n");
      for(i=1;i<=n;i++)
      scanf("%d",&a[i]);
      printf("\n Vvedite nomer odnogo elementa: \n");
      scanf("%d",&k);
      printf("\n Vvedite nomer drugogo elementa: \n");
      scanf("%d",&l);
 
      swap(a[0],l,k);
      printf("\n Rezultat: \n");
      for(i=0;i<n;i++)
      printf("%d ",a[i]);
      getch();
}
void swap(int k,int l,int a)
{
     int t,a[N];
     t = a[k];
     a[k] = a[l];
     a[l] = t;
     return;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2012, 08:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как работают указатели с массивами (C++):

Как использовать указатели при работе с массивами? - C++
подскажите пожалуйста как правильно использовать указатели при работе с массивами. Как написать этк программу используя указатели? ...

Как работают ссылки и указатели? - C++
Не нашел описание того, почему именно так работает, везде говорится только то, что так надо делать и все Аргумент функции является...

указатели с массивами - C++
Привет.Помогите пожалуйста решить задачу. В массиве А вставить после первого максимального элемента k наименьших элементов. например ...

Работа с массивами через указатели - C++
прошу,помогите! нужно написать следующую программу,используя указатели: ввести целочисленный массив,состоящий из 9 элементов.поменять...

Указатели при работе с одномерными и двумерными массивами - C++
Помогите Даны натуральное число n, целые числа а1,...,аn . Выяснить, имеется ли среди чисел а1,...,аn совпадающие.

Работа с массивами через указатели, адреса. Функция сортировки выбором любого массива - C++
Надо было написать программу сортировки с использованием функций из учебника. соответственно Compare, Find_minimum_index, Swap и SwapChar....

1
Croessmah
Эксперт CЭксперт С++
13514 / 7673 / 866
Регистрация: 27.09.2012
Сообщений: 18,891
Записей в блоге: 3
Завершенные тесты: 1
01.11.2012, 08:59 #2
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
#include<stdio.h>
#include<math.h>
#include<conio.h>
#define N 20
void swap(int k,int l,int *a);//Вынес прототип из функции и поменял его в соотвествии с изменением самой функции
int main()
{
      int a[N+1],k,l,i,n;
      printf("\n Vvedite razmer n: \n");
      scanf("%d",&n);
      printf("\n Vvedite massiv A: \n");
      for(i=0;i<n;i++)//Размер массива от 0 до n-1
      scanf("%d",&a[i]);
      printf("\n Vvedite nomer odnogo elementa: \n");
      scanf("%d",&k);
      printf("\n Vvedite nomer drugogo elementa: \n");
      scanf("%d",&l); 
      swap(k,l,a);//A[0] поменял на a, и поменял местами с k
      printf("\n Rezultat: \n");
      for(i=0;i<n;i++)
      printf("%d ",a[i]);
      getch();
        return 0;
}
void swap(int k,int l,int *a)//Изменил функцию так, чтобы она принимала указатель
{
     int t;//Убрал объявление a, т.к. у Вас уже есть переменная a
     t = a[k];
     a[k] = a[l];
     a[l] = t;//
     return;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2012, 08:59
Привет! Вот еще темы с ответами:

Указатели и указатели на указатели, а также типы данных - C++
Недавно начал изучать Си, перешел с Delphi. Много непонятного и пока процесс идет медленно. Накачал литературы, буду изучать) Щас...

Через указатели на указатели посчитать сумму двух чисел и записать в третье - C++
1. Через указатели на указатели посчитать сумму двух чисел и записать в третье. 2. Написать примитивный калькулятор, пользуясь только...

Есть три переменные. Используя указатели на указатели, поменять значение максимальной и минимальной переменной - C++
Мой код. #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include&lt;iomanip&gt; using namespace std; void min_max(int*pa, int*pb,...

Указатели на указатели с числами. Почему можно присвоить число в 4-ый элемент, если массив из 2 элементов? - C++
Есть массив int **mas; mas=new int*; // выделил место под пять строк, верно ? mas=new int;// выделил для первой строки матрицы два...


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

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

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