Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Помогите плиз решить задание! (http://forum.oszone.net/showthread.php?t=247504)

lacost!!! 23-11-2012 01:15 2030889

Помогите плиз решить задание!
 
в одном массиве, состоящем из целых элементов, вычислить:
1)произведение элементов массива с четными номерами.
2)сумму элементов массива, расположенных между первым и последним нулевыми элементами
Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом-отрицательные (элементы, равные 0, считать положительными)

Drongo 23-11-2012 02:58 2030928

lacost!!!, И в чём сложность? У вас есть какие-то мысли, заготовки или нам решать ваше задание? Если затрудняетесь с кодом, напишите словами, построчно, с условиями и циклами, псевдокодом.

lacost!!! 23-11-2012 03:03 2030930

если можно решить. вообще не могу понять как это делать(

AMDBulldozer 23-11-2012 07:36 2030959

Большая просьба, на будущее научиться делать домашние задания самостоятельно, а не требовать помощи на форумах от занятых людей.
Код:

#include <stdio.h>

int arrayops(int *array, int size, int *m_array, int *s_array)
{
  int i, j, tmp, mul=1, sum=0, first0=-1, last0=-1;

/* считаем, что нумерация массива начинается с 0 и что первое четное число равно 2 */
  for( i=2; i<size; i=i+2) mul *= array[i];
  *m_array=mul;

  for( i=0; i<size; i++){
    if( array[i] == 0 ){
      if( first0 == -1 ) first0=i;
      last0=i;
    }
  }
  if( first0 > last0 - 2 ) return 1;
  for( i=first0+1; i<last0; i++ ) sum += array[i];
  *s_array=sum;

  j = size - 1;
  for( i=0; i<j; i++) {
    while( array[j] < 0 ) j--;
    if( array[i] < 0 ) {
      array[i] = array[i] ^ array[j];
      array[j] = array[i] ^ array[j];
      array[i] = array[i] ^ array[j--];
    }
  }
  return 0;
}


void main()
{
  int i, m_array, s_array;
  int arr[]={3,5,0,1,-2,0,4,-7,0,0,-5,-5,0,-1,2};
  if( arrayops(arr, sizeof(arr)/sizeof(int), &m_array, &s_array) != 0 ) printf ("Invalid input data\n");
  printf ("mul = %d, sum = %d", m_array, s_array);
  for( i=0; i< sizeof(arr)/sizeof(int); i++) printf (", arr[%d] = %d", i, arr[i]);
  printf(".\n");
}

Не могу сказать, что код оптимальный - набросал первый попавшийся.

lacost!!! 23-11-2012 10:01 2031014

спс. учту


Время: 19:57.

Время: 19:57.
© OSzone.net 2001-