cout << "\n 5 in chrArray: index=" << find(chrArr, ch, 6);
cout << "\n 6 in intArray: index=" << find(intArr, in, 6);
cout << "\n11 in lonArray: index=" << find(lonArr, lo, 6);
cout << "\n 4 in dubArray: index=" << find(dubArr, db, 6);
cout << endl;
return 0;
}
template <class type>
int find(type* array, type value, int size)
{
for(int j=0; j<size; j++)
if(array[j]==value)
return j;
return -1;
}
Перегрузка шаблона функций на примере обмена значений двух переменных и обмена значений двух одномерных массивов
#include <iostream.h>
template <class Any> // прототип исходного шаблона, void swap (Any &a, Any &b); //использующего обобщенный тип Any
template <class Any> //прототип нового шаблона
void swap (Any *a, Any *b, int n);
void show (int a[ ], int n); //прототип функции show
const int Lim=8;
int main()
{int i=10, j=20;
cout << “ i=” << i <<” j=” << j <<”\n”;
swap (i, j); //соответствует исходному шаблону
cout << “ new i=” << i <<” new j=” << j <<”\n”;
static int d1[Lim] = {0, 7, 0, 4, 1, 7, 7, 6}; // инициализация массивов
static int d2[Lim] = {0, 6, 2, 0, 1, 9, 6, 9};
cout << “ original arrays:\n”;
show(d1, Lim); show(d2, Lim);
swap(d1, d2, Lim); //соответствует новому шаблону cout << “ swapped arrays:\n”;
show(d1, Lim); show(d2, Lim);
return 0;
}
template <class Any> //определение исходного шаблона
void swap (Any &a, Any &b)
{Any temp;
temp = a; a = b; b = temp;
}
template <class Any> //определение нового шаблона
void swap (Any *a, Any *b, int n)
{Any temp;
for (int i=0; i<n; i++)
{temp = a[i]; a[i] = b[i]; b[i] = temp;}
}
void show (int a[ ], int n)
{for (int i=0; i<n; i++)
cout << a[i] << “ “;
cout << endl;
}
Ввод и вывод значений двумерного массива:
#include <stdio.h>
#include <stdlib.h>
main ()
{
const int n=5;
const int m=3;
int a[n][m];
int i, j;
for (i=0; i< n; i++)
for( j=0; j< m; j++)
a[i][ j] = rand() %5; // или cin >> a[i][j];
for (i=0; i< m; i++)
{ for( j=0; j< n; j++)
printf ("%5d", a[i][j]);
printf ("\n");
}
printf ("\n");
for (i=0; i< n; i++)
for( j=0; j< m; j++)
*(a[i]+ j) = rand() %5; // или cin >> *(a[i]+ j);
for (i=0; i< m; i++)
{ for( j=0; j< n; j++)
printf ("%5d", *(a[i]+ j));
printf ("\n");
}
printf ("\n");
for (i=0; i< n; i++)
for( j=0; j< m; j++)
*(*(a+i)+j) = rand() %5; // или cin >> *(*(a+i)+ j);
for (i=0; i< m; i++)
{ for( j=0; j< n; j++)
printf ("%5d", *(*(a+i)+j));
printf ("\n");
}
return 0;
}
Присваивание значений элементам символьного массива chararray [n][m]:
#include <stdio.h>
#include <stdlib.h>
main ()
{
const int n=3;
const int m=4;
char a[n][m];
int i, j;
for (i=0; i< 4; i++)
for( j=0; j< 3; j++)
a[i][ j] = char (97+rand() %26); //символы латинского алфавита
for (i=0; i< 4; i++)
{for( j=0; j< 3; j++)
printf ("%2c",a[i][j]);
printf ("\n");}
return 0;
}
Заполнение двумерного массива случайными числами от 1 до 11 и вывод элементов массива на экран: #include <stdio.h>
#include <stdlib.h>
const int n = 10;
const int m = 5;
main ()
{static int a[n][m];
for (int i=0; i<n; i++)
for(int j=0; j<m; j++)
{a[i][j] = 1 +rand() % 10;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.