begin Randomize; Writeln('Исходный массив'); for i := 1 to n do begin a[i] := Random(51) - 25; Write(a[i]:4); end; Writeln; Writeln('Результирующий массив'); for i := 1 to n do begin if a[i] > 0 then a[i] := a[i] div 2 else a[i] := i; Write(a[i]:4); end; Writeln; end.
#include <iostream.h>//для vs <iostream> #include <conio.h> /* для vs : using std::cin; using std::cout; using std::endl; using std::srand; using std::rand;*/ int main(){ int a[16],i,n; randomize();//<->srand; cout<<"EXIT-0\n"; while(n!=0 ){ M: cout<<"Vvedite Razmer Massiva (N<=16) :\n"; cin>>n; if(n>16) cout<<"Error! N>16 . Try again\n"; if(n>16) goto M; for (i=0;i<n;i++) a[i]=random(100);//<->rand(); cout<<endl; for (i=0;i<n;i++) cout<<a[i]<<" "; cout<<endl;} getch(); return 0; }
Напишу ответ, потому что: 1) Все же С++ изучают реже, чем Паскаль 2) Чтобы в очередной раз показать преимущества Паскаля над С-подобными языками для школьных задач. Как говорится, "Имеющий глаза - да увидит!"
// PascalABC.NET 3.3, сборка 1555 от 21.10.2017 // Внимание! Если программа не работает, обновите версию!
begin var n:=ReadInteger('N='); for var i:=1 to n do begin var (flag,j,r):=(True,2,Round(Sqrt(i))); while flag and (j<=r) do if i mod j = 0 then flag:=false else j+=1; if flag then Print(i) end end.
n = 10;
var
a: array[1..n] of integer;
i: integer;
begin
Randomize;
Writeln('Исходный массив');
for i := 1 to n do
begin
a[i] := Random(51) - 25;
Write(a[i]:4);
end;
Writeln;
Writeln('Результирующий массив');
for i := 1 to n do
begin
if a[i] > 0 then a[i] := a[i] div 2 else a[i] := i;
Write(a[i]:4);
end;
Writeln;
end.
Тестовое решение:
Исходный массив
5 -19 -24 -21 -4 14 -18 -21 2 -14
Результирующий массив
2 2 3 4 5 7 7 8 1 10