С++ устроит?
| Код | #include <iostream.h> #include <iomanip.h>
#define SIZE 3 #define LAST SIZE - 1
bool digitInNumber(int num, int dig) { while(num) { if(num % 10 == dig || num % 10 == -dig) return true; num /= 10; }
return false; }
int main() { int matr[][SIZE] = {{ 57, -124, 36}, { 684, -287, 99}, {-521, 41, -84}}; int i, j; int sum; int digit;
// выводим матрицу cout <<"Source matrix: \n"; for(i = 0; i < SIZE; i++) { for(j = 0; j < SIZE; j++) cout << setw(6) << matr[i][j]; cout << endl; }
// выводим все столбцы матрицы, сумма которых положительна cout <<"\nPositive columns: \n"; for(i = 0; i < SIZE; i++) { sum = 0; for(j = 0; j < SIZE; j++) sum += matr[j][i]; if(sum > 0) { cout << "Column " << i << ":"; for(int h = 0; h < SIZE; h++) cout << setw(6) << matr[h][i]; cout << endl; } }
// суммируем элементы матрицы по периметру sum = 0; for(i = 0; i < LAST; i++) sum += matr[0][i] + matr[i][LAST] + matr[LAST][LAST - i] + matr[LAST - i][0]; cout << "\nSum elements on perimeter: " << sum << endl;
// Выводим все элементв матрицы, содержащие цифру, // вводимую с экрана по запросу пользователя, // на остальных местах проставляем нули
cout <<"\nEnter digit[0...9], please: "; cin >> digit;
cout <<"\nMatrix output: \n"; for(i = 0; i < SIZE; i++) { for(j = 0; j < SIZE; j++) { cout << setw(6); cout << (digitInNumber(matr[i][j], digit) ? matr[i][j] : 0); } cout << endl; }
return 0; }
| |