Откуда появляется ноль(на скрине показал) после номера первого четного элемента? (то что тут 2 массива, это так и должно быть). и еще нужно "в том массиве, где первый четный элемент стоит раньше, поменять его с последним элементом массива. обмен осуществить при процедуры." код: program p12_2; uses crt; const n=10; type mas=array[1..n] of integer; var a: mas; var i,p,k: integer; procedure vvod(n: integer; var a: mas); var i: integer; var w,q: integer; begin writeln('заполнение массива случайными числами.'); writeln('введите границы массива'); write('от: '); read(q); write('до: '); read(w); randomize; if q=w then begin for i: =1 to n do begin a[i]: =q; end; end else if q> 0 then begin for i: =1 to n do begin a[i]: =random (w-q)+q; end; end else begin q: =q*(-1); for i: =1 to n do begin a[i]: =random(w+q)-q end; end; end; procedure vivod(n: integer; var a: mas); var i: integer; begin writeln; for i: = 1 to n do begin write(a[i]: 4); write; end; end; function first(k: integer; var a: mas) : integer; var i,n: integer; begin i: =0; repeat i: =i+1; if (a[i] mod 2)=0 then k: =i; until k=i; writeln('первое четное число под номером ',k); end; begin writeln('первый массив: '); vvod(n, a); vivod(n, a); writeln; writeln(first (k, a)); writeln; writeln; writeln('второй массив: '); vvod(n, a); vivod(n, a); writeln; writeln(first (k, a)); writeln; end.
#include <iostream>
#include <vector>
#include <cstdint>
using namespace std; template <class T>
istream& operator>>(istream &in, vector<T> &vec) { for (auto &it : vec) in >> it; return in;
}
template <class T>
ostream& operator<<(ostream &out, vector<T> &vec) { for (auto &it : vec) out << it << ' '; return out;
}
template <class T, class U>
istream& operator>>(istream &in, pair<T, U> &pair) { in >> pair.first >> pair.second; return in;
}
template <class T, class U>
ostream& operator<<(ostream &out, pair<T, U> &pair) { out << pair.first << ' ' << pair.second; return out;
}
signed main(void) { int32_t n; cin >> n; vector<vector<int64_t>> a(n, vector<int64_t>(n,-1)); int64_t x = 0, y = n/2; a[x][y] = 1; for(int32_t i = 2; i <= n*n; ++i) { int _x = x, _y = y; if(!x) { x = n-1; } else { --x; } if(y == n-1) { y = 0; } else { ++y; } if(a[x][y] != -1) { x= _x, y = _y; while(a[x][y] != -1) { if(x == n-1) { x = 0; } else { ++x; } } } a[x][y] = i; } for(int32_t i = 0; i < n; ++i) { cout << a[i] << '\n'; } return 0; }
Объяснение:
Запишем на C++ то, что написано в условии.
Если надо, то код также прикрепил в виде файла
Списывать не хорошо)
Если повезёт увидемся в (СИРИУС)
Блок-сызбанұсқасы — сызбанұсқаның танымал түрі, алгоритм және процесті суреттейді, яғни әр қадамды сурет (түрлі блоктар сияқты) ретінде суреттеледі, олар сызықшамен бір-біріне байланысады, ал сызықтар алгоритм ретін көрсетеді.
Алгоритмдік тіл (ағылш. algorіtmіc — алгоритмдік және language — тіл) — ЭЕМ-мен шығарылатын есептердің алгоритмін бірмәнді түрде жазуға арналған жасанды тіл. Ол белгілер (символдар) жиынтығынан (Алгоритмдік тіл алфавитінен), синтаксистік ережелер мен семантикалық анықтамалардан құралған. Алгоритмдік тілдің негізгі белгілері латын не орыс алфавиттері әріптері, қандай да бір таңбалар мен шартты белгілер болуы мүмкін. Сөздер, сөз тіркестері (фразалар, сөйлемдер) , кестелер мен кестелер жүйесі Алгоритмдік тілдің құрылымы болып табылады. Түсіндіру ережелері ЭЕМ-де аппараттармен жүзеге асырылатын Алгоритмдік тіл машиналық тіл деп аталады. Алгоритмдік тіл табиғи тілден бірмәнділігі мен айқындылығы жағынан ерекшеленеді. Есептеу машинасына Алгоритмдік тілін пайдаланғанда бағдарламалау мен машина жұмысын үйлестіретін арнайы бағдарламалаушы — процессор қолданылады. Ол бағдарламаны енгізу, машиналық, синтаксистік, семантикалық талдаулар, формальды қателерді анықтау, бағдарламаны орындау т.б. жұмыстарды атқарады. Алгоритмдік тілдің бірнеше түрі бар. Олардың кейбіреулері ғана (мыс., алгол, кобол, лисп, Пл/1, Фортран, Паскаль т.б.) кең