|
|||
for (int i=k+1; i<n; i++). if (*p>*(m+i)). temp = *p; *p = *(m+i); *(m+i) = temp;. cout << \n;. cout << \n Упорядоченный массив m[i],i=1, << n << :\n;. cout << (распечатка с испfor (int i=k+1; i<n; i++) if (*p>*(m+i)) { temp = *p; *p = *(m+i); *(m+i) = temp; } p++; } cout << "\n"; cout << "\n Упорядоченный массив m[i],i=1," << n << ":\n"; cout << "(распечатка с использованием *(m+i))\n"; for (int i=0; i<n; i++) cout << *(m+i) << ","; cout << "\n Упорядоченный массив m[i],i=1," << n << ":\n"; cout << "(распечатка с использованием *(p+i))\n"; for (int i=0; i<n; i++) cout << *(p+i) << ","; } Разберитесь и выпишите в тетрадь неверную конструкцию вывода массива с помощью указателей.
5 . Откомпилируйте и запустите предложенную программу сортировки строк матрицы в порядке возрастания сумм их элементов. #include <iostream.h> void main() { const int n=5; //Количество строк. const int m=7; //Количество столбцов. double array[n][m]; //Основной массив. for (int i=0;i<n;i++) for (int j=0;j<m;j++) array[i][j]=n-i; //Заполнение массива. double *par[n]; //Массив указателей. for (int i=0;i<n;i++) //Цикл перебора строк. par[i]=(double*)array[i]; //Печать массива через указатели. cout << "\n До перестановки элементов массива указателей: "; for (int i=0;i<n;i++) { cout<< "\n строка " << i+1 <<": "; for (int j=0;j<m;j++) cout << "\t" << par[i][j]; } //Упорядочение указателей на строки массива. double si,sk; for (int i=0;i<n-1;i++) { for (int j=0, si=0;j<m;j++) si+=par[i][j]; for (int k=i+1;k<n;k++) { for (j=0,sk=0;j<m;j++) sk+=par[k][j]; if (si>sk) { double *pa=par[i]; par[i]=par[k]; par[k]=pa; double a=si; si=sk; sk=a; } } } //Печать массива через указатели. cout << "\n После перестановки элементов массива:"; for (i=0;i<n;i++) { cout << "\n строка " << i+1 <<": "; for (int j=0;j<m;j++) cout << "\t" << par[i][j]; }
|
|||
|