КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
В головной программе матрица должна быть описана с фиксированной размерностью с 10 столбцами
Else Динамические массивы при создании нельзя инициализировать, и они не обнуляются при создании. Треугольные динамические матрицы Выделение памяти под верхний треугольник квадратной матрицы nхn: int **p; p = new int *[n]; for (int i=0; i<n; i++) p[i] = new int [n-i]; Выделение памяти под нижний треугольник такой же матрицы: int **p; p = new int *[n]; for (int i=0; i<n; i++) p[i] = new int [i+1];
Пример 10.6. Динамическая единичная матрица (вариант1). {cout <<"Error"; return;} matr[i]= new int [n]; Пример 10.7. Динамическая единичная матрица (вариант2). } Одномерные массивы – параметры Пример 10.8. Нахождение суммы элементов массива. int sum1(int a[100], int n) int sum2(int a[], int n) int sum3(int *a, int n) int main()
Функции, возвращающие указатель на массив
Пример 10.9. Слияние двух упорядоченных массивов #include <iostream> using namespace std; int* fun(int n, int* a, int m, int* b) { int* x=new int[n+m]; //массив-результат int ia=0,ib=0,ix=0; while ((ia<n)&&(ib<m)) //цикл до конца одного из массивов if (a[ia]>b[ib]) x[ix++]=b[ib++]; else x[ix++]=a[ia++]; if (ia>=n) while(ib<m) x[ix++]=b[ib++]; while(ia<n) x[ix++]=a[ia++]; return x; }
void main() {setlocale(LC_ALL,".1251"); int p[]={3,7,8,55}; int s[]={1,4,6,9,23,34}; int* h;//указатель на массив-результат int kp=sizeof(p)/sizeof(p[0]); int ks=sizeof(s)/sizeof(s[0]); h=fun(kp,p,ks,s); cout<<"результат"<<endl; for(int i=0;i<kp+ks;i++) cout << " " << h[i]; cout<<endl; delete[]h; } Двумерные массивы – параметры Двумерный массив как формальный параметр можно объявить следующими способами: Прототипы соответствующих функций будут иметь следующий вид: Варианты I-II. Пример 10.10. Функция транспонирования квадратной матрицы (варианты 1-2). //void transpon(int Ma[][10],int n) {int r; for (int i=0; i<n-1; i++) for (int j=i+1; j<n; j++) { r=Ma[i][j]; Ma[i][j]=Ma[j][i]; Ma[j][i]=r; } } int main() {int Matr[10][10]; int k; cin >> k; for (int i=0; i<k; i++) for (int j=0; j<k; j++) Matr[i][j]=rand()%10; for (int i=0; i<k; i++) {for (int j=0; j<k; j++) cout << Matr[i][j] << " "; cout << endl; } transpon(Matr,k); cout << ”---------------\n”; for (int i=0; i<k; i++) {for (int j=0; j<k; j++) cout << Matr[i][j] << " "; cout << endl; } return 0; }
Дата добавления: 2014-01-07; Просмотров: 481; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |