Циклы. Инициализация массива размерности n случайными целыми положительными значениями от 0 до 32767, страница 9

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;