• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Задача С Массивом

  • Автор темы filpaul
  • Дата начала
F

filpaul

Помогите пожалуйста с задачей:
Вставить заданное число в массив целых чисел:
a)перед всеми элементами, кратными числу A;
б) После всех отрицательных элементов;

Вот, что у меня получилось(пока для пункта "а"), но прога выдает исходный массив:

#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
int main()
{
int i;
i=40;
int mas[]={-3,-2,-1,4,6,10,16,21,44,45,68,-60,-81,33};
cout<<"ishodny massiv:";
for (int i=0;i<14;i++)
cout<<" "<<mas<<" ";
int k,z,c;
cout<<""<<endl;
cout <<"Vvedite chislo z na nego delit"<<endl;
cin >>z;
cout <<"Vvedite chislo k"<<endl;
cin>>k;
c=14;
for (i=0;i<c;i++)
{
if ((mas%z)==0)
{
c=c+1;
for (int j=c; j>=0; j--)
{
mas[c]=mas[c-1];
mas=k;
}
}
cout<<"New massiv:";
for (int i=0;i<c;i++)
cout<<" "<<mas<<" ";
system("pause");
return 0;
}
}
 
W

Whatka

C++:
//
#include <iostream>
#include <ctime>
using namespace std;
void main()
{
//======================================================
//Создание и заполнение массивов

setlocale(LC_ALL,"RUS");
int size,A,C;
cout<<"Размер массива,А и выбранное число:";
cin>>size>>A>>C;
int *Mas=new int [size];
srand(time(0));
cout<<"Исходный массив:";
for(int i=0;i<size; ++i)
{
int temp=rand()%11+1;
Mas[i]=(int)(rand()%1000-500)/temp;
cout<<Mas[i]<<" ";
}

int *Stor=new int [size];
for(int i=0;i<size;++i)
Stor[i]=Mas[i];

//======================================================
//Вычисление кол-ва дополнительных мест 

int bonus_size(0);
bool first(1);
for(int i=size-1; i>=0; i--)
{
if(Mas[i]<0 && first )
{
first=false;
if(Mas[i]%A!=0)
{
bonus_size++;
continue;
}
}
if(Mas[i]%A == 0)
bonus_size++;
}
cout<<"\n+новых="<<bonus_size;
//======================================================
//Заполнение нового массива

delete [] Mas;
Mas=new int[size+bonus_size];
bool first_neg(1);

for(int i=size-1,j=size+bonus_size-1;i>=0;i--,j--)
{
if(Stor[i]%A!=0 && Stor[i]<0 && first_neg)
{
Mas[j]=C;
j--;
first_neg=false;
}
if(Stor[i]%A == 0)
{
Mas[j]=C;
j--;
}
Mas[j]=Stor[i];	
}

//======================================================
//Вывод результатов

cout<<"\nМассив:";
for(int i=0;i<size+bonus_size;i++)
cout<<Mas[i]<<" ";
cout<<"\n";
}
//
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!