народ помогите с задачей
Сжать n мерный целочисленный массив,удалив из него все элементы,величина которых находится в интервале [a,b].Освободившиеся в конце массива элементы заполнить нулями
ICQ 395546[двести+восемнадцать]
мыло [ник на форуме]@mail.ru
мыло [ник на форуме]@mail.ru
Сделаю! Очень не дорого. В кратчайшие сроки. Договоримся! Ася 255507394.
Мои мысли настолько гениальны, что санитары уже приехали!
Ася 255507394.
Ася 255507394.
Сделаю быстро и недорого. Обращайтесь. xranger@mail.ru
-
- Сообщения: 22
- Зарегистрирован: 16 авг 2009, 13:02
- Откуда: Dnepropetrovsk
- Контактная информация:
Сделаю бесплатно и почти полностью:
чот типу такого)
Код: Выделить всё
#include<iostream>
using namespace std;
const int n=10;
int main(int)
{
int c[n]={5,7,11,4,0,34,174,8,9,10}; //при желании можно
//написать цикл который будет генерировать значения ;)
int a=0,b=0,d=10,i=0,count=0;
cout<<"Enter a,b"<<endl;
cin>>a>>b;
for(i;i<n;i++)
{
if(c[i]>a && c[i]<b)
{
d=i;
while(d<n)
{
c[d]=c[d+1];
d+=1;
}
count+=1;
c[n-count]=0;
}
}
for(i=0;i<n;i++)
cout<<c[i]<<"\t";
return 0;
}
Код: Выделить всё
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main(){
int i,j,A,B,*a,n;
cin>>A>>B>>n;
a=new int[n];
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=0;i<n;i++)
if(a[i]<B&&a[i]>A){
for(j=i--,n--;j<n;j++)
a[j]=a[j+1];
a[n++]=0;
}
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl,cin.get(),cin.get();
return 0;
}
Код: Выделить всё
while(d<n)
{
c[d]=c[d+1];
d+=1;
}
выйдет за пределы массива
-
- Сообщения: 22
- Зарегистрирован: 16 авг 2009, 13:02
- Откуда: Dnepropetrovsk
- Контактная информация:
Ну незнаю-незнаю, я тестировал, у меня все молодцом работало...rrrFer писал(а): THuND3Rb0LTКод: Выделить всё
while(d<n) { c[d]=c[d+1]; d+=1; }
выйдет за пределы массива
Точнее, помоему, оно и вправду выйдет, но страшного ничего не произойдет)
THuND3Rb0LT
приложу снимок экрана.
запустил твою программу с массивом, который введен у тебя там, т.е.
int c[n]={5,7,11,4,0,34,174,8,9,10};
ввел А и Б соответсвенно 5 и 10, в результате получаю:
5 11 4 0 34 174 9 10 0 -858993460
т.е. вот в этом цикле:
ты в последний элемент массива пишешь мусор.
кроме того, надо разобраться с алгоритмом - число "9" почему-то у тебя осталось.
приложу снимок экрана.
запустил твою программу с массивом, который введен у тебя там, т.е.
int c[n]={5,7,11,4,0,34,174,8,9,10};
ввел А и Б соответсвенно 5 и 10, в результате получаю:
5 11 4 0 34 174 9 10 0 -858993460
т.е. вот в этом цикле:
Код: Выделить всё
while(d<n)
{
c[d]=c[d+1];
d+=1;
}
кроме того, надо разобраться с алгоритмом - число "9" почему-то у тебя осталось.
- Вложения
-
- Clipboard02.jpg (42.8 КБ) 291 просмотр