*ppar= new int[5]; //*ppar инициализируется адресом динамического массива
for (int i=0; i<5; i++)
{printf ("%p %p\n", ppar, *(ppar+0)+i);
scanf ("%d", *(ppar+0)+i);} // или scanf (”%d”, ppar[0]+i); без &
for (i=0; i<5; i++)
printf ("%5d", *(*(ppar+0)+i)); // или printf ("%5d", *(ppar[0]+i));
//или printf ("%5d", ppar[0][i]);
printf ("\n");
delete [ ] *ppar;
delete ppar;
return 0;
}
//не для всех !!!!
#include <stdio.h> // еще один способ создания динамического массива
#include <stdlib.h>
main ()
{
static int *pi[5];
for (int i=0; i<5; i++)
pi[i] = new int;
for ( i=0; i<5; i++)
{printf ("%p\n", pi[i]); //вывод адреса элемента массива
scanf("%d", pi[i]); //без &
}
for (i=0; i<5; i++)
printf ("%5d", *pi[i]); //вывод элемента массива
printf ("\n");
for (i=0; i<5; i++)
delete pi[i];
return 0;
}
Перегрузка функций при вычислении суммы элементов массива
#include <iostream.h>
#include <conio.h>
int adder ( int [ ]);
double adder ( double [ ]);
main()
{ int iarray [ 7 ] = {5, 1, 6, 20, 15, 0, 12};
double darray [ 7] = {5.5, 1.6, 6.7, 20.2, 15.0, 0.2, 12.0};
double dsum;
int isum;
isum= adder (iarray); //выбор версии функции
dsum= adder (darray); //на основании типа аргументов
cout << “isum=” << isum << endl;
cout << “dsum=” << dsum << endl;
getch();
return 0;
}
int adder (int iarray[ ])
{int i;
int ipartial;
ipartial = iarray[0];
for (i=1; i<7; i++)
ipartial +=iarray [ i ];
return (ipartial);
}
double adder (double darray[ ])
{int i;
double dpartial;
dpartial = darray[0];
for (i=1; i<7; i++)
dpartial +=darray [ i ];
return (dpartial);
}
Пример шаблона функций для поиска в массиве максимального значения.
#include <iostream.h>
template <class type> type& rmax (type d[ ], int n); //прототип шаблона
void main()
{const int n=4;
static int x[ ]= {10, 20, 30, 14};
cout << “\n rmax(x, n)=” << rmax(x, n);
rmax(x, n) =0; //обнуление макс. элемента
for (int i=0; i<n; i++)
cout << “\tx[” << i << “]=” <<x[i];
static float arx[ ] = {10.3f, 20.4f, 10.5f};
cout << “\n rmax(arx, 3)=” << rmax(arx, 3);
rmax(arx, 3) =0; // обнуление макс. элемента
for (i=0; i<3; i++)
cout << “\t arx[” << i << “]=” << arx[i];
cout << endl;
}
template <class type> type& rmax (type d[ ], int n) //определение шаблона
{int im=0 ;
for (int i=0; i<n; i++)
im = d[im] > d[i] ? im : i;
return d[im];
}
Пример шаблона функций для поиска в массиве заданного значения, причем функция определяет (возвращает) индекс найденного элемента или -1, если элемент не найден:
#include <iostream.h>
template <class type>
int find(type* array, type value, int size);
char chrArr[] = {1, 3, 5, 9, 11, 13}; // глобальный массив
char ch = 5; //значение для поиска
int intArr[] = {1, 3, 5, 9, 11, 13}; //глобальный массив
int in = 6; //значение для поиска
long lonArr[] = {1L, 3L, 5L, 9L, 11L, 13L}; //глобальный массив
long lo = 11L; //значение для поиска
double dubArr[] = {1.0, 3.0, 5.0, 9.0, 11.0, 13.0}; //глобальный массив
double db = 4.0; //значение для поиска
int main()
{
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.