Практикум по программированию. Основы. Массивы. Магический квадрат

From AsIsWiki
Jump to: navigation, search

Назад · Задачи · Дальше


Contents

Java

import java.util.Scanner;

public class Task11 {

    private static final int n = 3;

    public static void main(String[] args) {
        
        Scanner in = new Scanner(System.in);
        
	System.out.println();
        System.out.println(" Магический квадрат ");
        System.out.println("--------------------");
        System.out.print(" Введите 9 элементов матрицы через пробел: ");

	int sumcol[] = new int[n];
	int sumrow[] = new int[n];

	for (int i = 0; i < n; i++) {
	    sumcol[i] = 0;
	    sumrow[i] = 0;
	}

	int s, sumdiag1 = 0, sumdiag2 = 0;

	int a[][] = new int[n][n];

	for (int i = 0; i < n; i++) {
	    s = 0;
	    for (int j = 0; j < n; j++) {
		a[i][j] = in.nextInt();
		s += a[i][j];
		sumrow[j] += a[i][j];
		if (i == j) {
		    sumdiag1 += a[i][j];
		}
		if (i + j == n - 1) {
		    sumdiag2 += a[i][j];
		}
	    }
	    sumcol[i] = s;
	}

        System.out.println("--------------------");

	for (int i = 0; i < n; i++) {
	    for (int j = 0; j < n; j++) {
		System.out.printf("%3d", a[i][j]);
	    }
	    System.out.println();
	}

	int i = 0, k = 0;

	if (sumdiag1 == sumdiag2) {
	    for (i = 0; i < n; i++) {
		if ((sumcol[i] == sumdiag1) && (sumrow[i] == sumdiag1)) {
		    k++;
		}
	    }
	}

	if (k == i) {
	    System.out.println(" Это магический квадрат");
	} else {
	    System.out.println(" Это не магический квадрат");
	}
    }
}


C++

// g++ 4.2

#include <iostream>

using namespace std;

int main() {

    cout << "\n Магический квадрат\n";
    cout << "--------------------\n";
    cout << " Введите 9 элементов матрицы через пробел: ";
    
    const int n = 3;
    
    int sumcol[n], sumrow[n];
    
    for (int i = 0; i < n; i++) {
        sumcol[i] = 0;
        sumrow[i] = 0;
    }
    
    int a[n][n], s, sumdiag1 = 0, sumdiag2 = 0;
    
    for (int i = 0; i < n; i++) {
        s = 0;
        for (int j = 0; j < n; j++) {
            cin >> a[i][j];
            s += a[i][j];
            sumrow[j] += a[i][j];
            if (i == j) {
                sumdiag1 += a[i][j];
            }
            if (i + j == n - 1) {
                sumdiag2 += a[i][j];
            }
        }
        sumcol[i] = s;
    }
    
    cout << "--------------------\n";
    
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            printf("%3d", a[i][j]);
        }
        cout << "\n";
    }
    
    int i = 0, k = 0;
    
    if (sumdiag1 == sumdiag2) {
        for (i = 0; i < n; i++) {
            if ((sumcol[i] == sumdiag1) && (sumrow[i] == sumdiag1)) {
                k++;
            }
        }
    }
    
    if (k == i) {
        cout << " Это магический квадрат";
    } else {
        cout << " Это не магический квадрат";
    }

    cout << "\n\n";
    return 0;
}


Pascal




Назад · Задачи · Дальше

Personal tools
Namespaces

Variants
Actions
Navigation
Tools