forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Математика (http://forum.boolean.name/forumdisplay.php?f=85)
-   -   помогите с задачей (http://forum.boolean.name/showthread.php?t=14848)

zhekaa 07.06.2011 02:07

помогите с задачей
 
Удалить все четные элементы массива. Пример:
массив 7 2 6 5 4 4 10 3 9
четные элементы 2 6 4 4 10
массив после удаления 7 5 3 9

RegIon 07.06.2011 07:33

Ответ: помогите с задачей
 
Цитата:

Удалить все четные элементы массива. Пример:
массив 7 2 6 5 4 4 10 3 9
четные элементы 2 6 4 4 10
массив после удаления 7 5 3 9
Код:

int m[]={7,2,6,5,4,4,10,3,9};
int n[],a,tr;
float tmp;
for(i=0;i=m[],i++){
tmp=m[i]/2;
a=int(tmp);//не помню точно
if(tmp-a=o){
tr++;
n[tr]=m[i];
}
}

писал с лёту,могут ошибки
p.s n[] масив выхода результата

impersonalis 07.06.2011 11:02

Ответ: помогите с задачей
 
Цитата:

Сообщение от Костян (Сообщение 190508)
Код:

int m[]={7,2,6,5,4,4,10,3,9};
int n[],a,tr;
float tmp;
for(i=0;i=m[],i++){
tmp=m[i]/2;
a=int(tmp);//не помню точно
if(tmp-a=o){
tr++;
n[tr]=m[i];
}
}

писал с лёту,могут ошибки
p.s n[] масив выхода результата

это что за покемон ЯП?
вот эта конструкция интерсует: i=m[],i++

RegIon 07.06.2011 11:27

Ответ: помогите с задачей
 
это С и с++ также можно....а i=m[] - i sodershit длину массива

Код:

for(z=0;string[z];z++){ <---ТУТ

 // if(string[z]=="\n") p++;

cod=string[z];

    for(i=0;i<8;i++){
    for(n=0;n<8;n++){
    point.x = x+(z*8*size+i*size);
    point.y = p*8*size+y+(+n*size);
    point.width = size;
    point.height = size;

  c = MAKE_RGB(255,255,255); 
    gfx_set_fgcolor(&c);
    //gfx_set_colorrop(COLOR_ROP_NOP);
    if(chars[(cod-32)*64+n*8+i]==1 )gfx_fillrect(&point);
 }
 }
 }
}

и нормально работает....

ой, извентиляюсь,не туда i воткнул For(i<0;m[i];i++)..
(но i=m[] тоже робит почемут)

impersonalis 07.06.2011 12:52

Ответ: помогите с задачей
 
Цитата:

Сообщение от Костян (Сообщение 190524)
ой, извентиляюсь,не туда i воткнул For(i<0;m[i];i++)..

блин
for(i=0;i<m[i];i++)
хватит уже постить код, набранный в браузере.
Про m[] - занятно, не сталкивался (хотя преподлагал, увидев твоё юзание).

RegIon 07.06.2011 13:11

Ответ: помогите с задачей
 
for(i=0;i<m[i];i++)===НЕТ,масив и так с нуля,куда ещё сравнивать....нахрен < зря писать
for(z=0;string[z];z++){ <---ТУТ у мну ведь работает....

impersonalis 07.06.2011 14:58

Ответ: помогите с задачей
 
а ну понятно. Т.е. условие выполнения цикла - неравенство нулю m[i]. Это говнокод. Т.к. m[i] может быть как равно нулю для i, входящего в размер массива, так и не равно - для i не входящего в размер вектора.
Для массива с именем string это, веротяно, работает лишь потому, что в нём хранится нуль-терминированная ascii-строка. Лишь два этих факта в совокупности позволяют применить этот хак.
Костян, ты не забыл что синтаксис for - начальное состояние, условие выполнения, инвариант? Знаком ; разедляются эти блоки, а при помщи запятой можно их расширять:
for(x=0,y=0;x<10 && y>-4;x++,y--)
а не
Цитата:

(i=0;i=m[],i++)
тут минмум две синтаксических ошибки
и две логических
Цитата:

(i<0;m[i];i++)
тут логическая (для общей задачи)

RegIon 07.06.2011 16:31

Ответ: помогите с задачей
 
ладно....у мя работает и ладно

impersonalis 07.06.2011 16:43

Ответ: помогите с задачей
 
а на таком наборе:
int m[]={0,2,6,5,4,4,10,3,9};
?

RegIon 07.06.2011 17:00

Ответ: помогите с задачей
 
Цитата:

а на таком наборе:
int m[]={0,2,6,5,4,4,10,3,9};
?
не проверял...

#Test 03.08.2011 21:35

Ответ: помогите с задачей
 
Код:

int InArray[] = { 7, 2, 6, 5, 4, 4, 10, 3, 9 };
int OutArray[sizeof(InArray) / sizeof(int)];

for(int i = 0, j = 0; i<sizeof(InArray) / sizeof(int); i++)
{
  if(InArray[i] % 2 != 0)
  {
    OutArray[j] = InArray[i];
    j++;
  }
}


impersonalis 03.08.2011 21:43

Ответ: помогите с задачей
 
Код:

if(InArray[i] % 2 != 0)
выполнить битовое И с маской 00000001


Часовой пояс GMT +4, время: 20:13.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot