переделайте, пожалуйста, из СИ++ в СИ(чтобы без COUT и <<...):
Условия задачи: Произвести транспонирование целочисленной матрицы (ввод, вывод, транспонирование производить в отдельных функциях) и вывести номера строк, в которых значения элементов убывают, и номера столбцов, в которых они возрастают.
| Код | #include<iostream.h> const int n=3;//размерность матрицы void InputMatrix(int Matrix[n][n]) //ввод матрицы { cout<<"Please enter a matrix("<<n<<"x"<<n<<")\n"; for (int i=0;i<n;i++) for(int j=0;j<n;j++) cin>>Matrix[i][j]; } void PrintMatrix(int Matrix[n][n]) //печать матрицы { for(int i=0;i<n;i++) { for(int j=0;j<n-1;j++) cout<<Matrix[i][j]<<" "; cout<<Matrix[i][n-1]<<"\n"; } } void Transposing(int Matrix[n][n]) //транспонирование матрицы { int i,j,TempMatrix[n][n]; for(i=0;i<n;i++) for(j=0;j<n;j++) TempMatrix[i][j]=Matrix[j][i]; for(i=0;i<n;i++) for(j=0;j<n;j++) Matrix[i][j]=TempMatrix[i][j]; } void PrintGrowColumns(int Matrix[n][n]) //печать номеров возрастающих столбцов { cout<<"Numbers of a grow columns:\n"; for(int j=0;j<n;j++) { int i=0; while(i<n-1&&Matrix[i][j]<Matrix[i+1][j])i++; if(i==n-1)cout<<j+1<<"\n"; } } void PrintDecreaseStrings(int Matrix[n][n]) //печать номеров убывающих строк { cout<<"Numbers of a decrease strings:\n"; for(int i=0;i<n;i++) { int j=0; while(j<n-1&&Matrix[i][j]>Matrix[i][j+1])j++; if(j==n-1)cout<<i+1<<"\n"; } } int main() { int Matrix[n][n]; InputMatrix(Matrix); cout<<"Source matrix:\n"; PrintMatrix(Matrix); Transposing(Matrix); cout<<"Transposed matrix:\n"; PrintMatrix(Matrix); //вычисление для транспонированной матрицы PrintDecreaseStrings(Matrix); PrintGrowColumns(Matrix); return 0; }
|
|