Чтобы поставить полученное значение на первое место необходимо просто обратиться к первому элементу массива и присвоить ему необходимое значение. Ещё у тебя там ошибка, в условии написано, что элементов 10, а ты создаешь массив только для 5. Исправь
mas: array[1..10] of integer;
Так же исходя из этого, необходимо подправить и тело цикла, потому что остальные 5 элементов останутся не заполненными.
for i:= 1 to 10 do begin
Но в задании так же написано, что нужно посчитать количество отрицательных элементов в первой половине массива. То есть необходимо немного подкорректировать условие подсчета.
if ( mas[ i ] < 0) and ( i <=5 ) then
Вроде всё. Если что-то не понятно, оставь комментарий
end;
mas[ 1 ] := minus;
writeln();
Объяснение:
Чтобы поставить полученное значение на первое место необходимо просто обратиться к первому элементу массива и присвоить ему необходимое значение. Ещё у тебя там ошибка, в условии написано, что элементов 10, а ты создаешь массив только для 5. Исправь
mas: array[1..10] of integer;
Так же исходя из этого, необходимо подправить и тело цикла, потому что остальные 5 элементов останутся не заполненными.
for i:= 1 to 10 do begin
Но в задании так же написано, что нужно посчитать количество отрицательных элементов в первой половине массива. То есть необходимо немного подкорректировать условие подсчета.
if ( mas[ i ] < 0) and ( i <=5 ) then
Вроде всё. Если что-то не понятно, оставь комментарий
Это и будет наименьшее время.
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
int n,i,s;
bool priz=true;
cin>>n;
int b[n],c[n];
for (int i=0; i<n; i++)
{
cin>>b[i];
c[i]=i+1;
}
// сортировка масcива по не возрастанию
while (priz)
{
priz=false;
for (int i=0; i<n-1; i++)
{
if (b[i]<b[i+1])
{
swap(b[i],b[i+1]);
swap(c[i],c[i+1]);
priz=true;
}
}
}
s=0;
for (int i=0; i<n; i++) s+=b[i]*(i+1);
cout<<s<<endl;
for (int i=0; i<n; i++) cout<<c[i]<<" ";
cout<<endl;
system("pause");
return(0);
}
Ввод - вывод:
6
10 21 13 36 41 9
332
5 4 2 3 1 6