/* * arrays.cpp * * Created on: 15.11.2012 * Author: trifon */ #include using namespace std; int main1() { const int MAX = 100; int a[MAX] = { 0 }; int b[MAX] = { 0 }; int x = 5; cout << a[0] << ' ' << x << endl; // a[10] = 10; лошо! // a[-1] = 5; лошо! cout << "a==b? " << (a == b) << endl; cout << "a==a? " << (a == a) << endl; int n; cout << "n = ";cin >> n; for(int i = 0; i < n; i++) { cout << "a[" << i << "] = "; cin >> a[i]; } for(int i = 0; i < n; i++) b[i] = a[i] + 1; for(int i = 0; i < n; i++) cout << "b[" << i << "] = " << b[i] << endl; int sum = 0; for(int i = 0; i < n; i++) sum += a[i]; cout << "Сумата на числата е " << sum << endl; cout << "x = ";cin >> x; int i = 0; while(i < n && a[i] != x) i++; // i == n || a[i] == x cout << x; if (i == n) cout << " НЕ"; cout << " се среща в масива" << endl; i = 0; while(i < n-1 && a[i] <= a[i+1]) i++; // i == n-1 || a[i] > a[i+1] cout << "Масивът"; if (i < n-1) cout << " НЕ"; cout << " е монотонно растящ" << endl; i = 0; int j = n; // i < n-1 - не сме обходили всичко // j == n - на предната стъпка сме нямали повторение while(i < n-1 && j == n) { // среща ли се a[i] в a[i+1]...a[n-1]? j = i + 1; while(j < n && a[i] != a[j]) j++; // j == n || a[i] == a[j] // ако j == n, тогава a[i] не се повтаря // ако j < n, тогава a[i] == a[j] i++; } // i == n-1 || j < n cout << "Масивът"; if (j < n) cout << " НЕ"; cout << " е множество" << endl; // метод на пряката селекция (selection sort) for(i = 0; i < n - 1; i++) { int min = i; for(j = i + 1; j < n; j++) if (a[j] < a[min]) min = j; // a[min] е най-малък измежду a[i]...a[n-1] // трябва да разменим a[i] с a[min] if (i != min) { int x = a[i]; a[i] = a[min]; a[min] = x; } // a[0]..a[i] редицата е подредена } for(i = 0;i < n; i++) cout << "a[" << i << "] = " << a[i] << endl; return 0; } int main() { const int MAX = 100; int a[MAX] = { 0 }, b[MAX] = { 0 }, c[2*MAX] = { 0 }; int n,m; cout << "n = ";cin >> n; for(int i = 0;i < n; i++) { cout << "a[" << i << "] = ";cin >> a[i]; } cout << "m = ";cin >> m; for(int i = 0;i < m; i++) { cout << "b[" << i << "] = ";cin >> b[i]; } int i = 0, j = 0, k = 0; /* while (i < n && j < m) { if (a[i] < b[j]) { c[k] = a[i]; i++; } else { c[k] = b[j]; j++; } k++; } if (i == n) { while (j < m) { c[k] = b[j]; j++; k++; } } else { while (i < n) { c[k] = a[i]; k++; i++; } } // i == n || j == m */ while (i < n && j < m) { if (a[i] < b[j]) c[k++] = a[i++]; else c[k++] = b[j++]; } // i == n || j == m while(i < n) c[k++] = a[i++]; while(j < m) c[k++] = b[j++]; for(i = 0;i < k; i++) cout << "c[" << i << "] = " << c[i] << endl; return 0; }