Практикум по программированию. Основы. Массивы. Сборка по возрастанию

From AsIsWiki
Jump to: navigation, search

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


Contents

Java

public class Task15 {

    private static final int n = 10;
    private static final int z = 9;

    public static void main(String[] args) {
        
	System.out.println();
        System.out.println(" Формирование массива C[2 * N] из элементов A[N] и B[N] ");
        System.out.println("      по правилу: C[1] <= C[2] <= ... <= C[2 * N]       ");
        System.out.println("--------------------------------------------------------");

	int a[] = new int[n + 1];
	int b[] = new int[n + 1];

	a[0] = (int) (z * Math.random());
	b[0] = (int) (z * Math.random());

	for (int i = 0; i < n - 1; i++) {
	    a[i + 1] = a[i] + (int) (z * Math.random());
	    b[i + 1] = b[i] + (int) (z * Math.random());
	}

	System.out.print(" Массив A:");

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

	System.out.print("\n Массив B:");

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

        System.out.println("\n--------------------------------------------------------");
	System.out.print(" Массив C:");

	int c[] = new int[2 * n];

	int i = 0, j = 0;

	for (int k = 0; k < 2 * n; k++) {
	    if (a[i] > b[j]) {
		if (j < n) {
		    c[k] = b[j++];
		} else {
		    c[k] = a[i++];
		}
	    } else {
		if (i < n) {
		    c[k] = a[i++];
		} else {
		    c[k] = b[j++];
		}
	    }
	}

	for (i = 0; i < 2 * n; i++) {
	    System.out.printf("%3d", c[i]);
	}

	System.out.println();
    }
}


C++

// g++ 4.2

#include <iostream>

using namespace std;

int main() {

    cout << "\n Формирование массива C[2 * N] из элементов A[N] и B[N]\n";
    cout << "      по правилу: C[1] <= C[2] <= ... <= C[2 * N]\n";
    cout << "--------------------------------------------------------\n";
    
    srand((int)time(0));
    
    const int n = 10;
    const int z = 9;
    
    int a[n + 1];
    int b[n + 1];
    
    a[0] = rand() % z;
    b[0] = rand() % z;
    
    for (int i = 0; i < n - 1; i++) {
        a[i + 1] = a[i] + (rand() % z);
        b[i + 1] = b[i] + (rand() % z);
    }
    
    cout << " Массив A:";
    
    for (int i = 0; i < n; i++) {
        printf("%3d", a[i]);
    }
    
    cout << "\n Массив B:";
    
    for (int i = 0; i < n; i++) {
        printf("%3d", b[i]);
    }
    
    cout << "\n--------------------------------------------------------\n";
    cout << " Массив C:";
    
    int c[2 * n], i = 0, j = 0;
    
    for (int k = 0; k < 2 * n; k++) {
        if (a[i] > b[j]) {
            if (j < n) {
                c[k] = b[j++];
            } else {
                c[k] = a[i++];
            }
        } else {
            if (i < n) {
                c[k] = a[i++];
            } else {
                c[k] = b[j++];
            }
        }
    }
    
    for (i = 0; i < 2 * n; i++) {
        printf("%3d", c[i]);
    }
    
    cout << "\n\n";

    return 0;
}


Pascal




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

Personal tools
Namespaces

Variants
Actions
Navigation
Tools