Форум программистов, компьютерный форум CyberForum.ru

Разместить все элементы с нулевыми значениями в левой части массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Передача класса по ссылки в метод (ругается) http://www.cyberforum.ru/cpp-beginners/thread84262.html
Среда Linux gcc 4.1.2 Есть прототип метода (класса Time) Time Time::Sum(const Time & t)const; И скажем такой код, передаем объект по ссылке Time a; Time b; a = b.Sum(&a);
C++ Вывести на экран все элементы целочисленного двумерного массива в порядке возрастания Вывести на экран все элементы целочисленного двумерного массива в порядке возрастания. #include <vcl.h> #include <conio.h> #include <iostream.h> void main() { http://www.cyberforum.ru/cpp-beginners/thread84258.html
C++ транслитерация строки (доделать)
помогите плз, не могу написать программу Написать функцию, которая выполняет транслитерацию строки: все буквы кириллицы заменяет латинскими. вот наоборот латинские на кириллицу заменяет, а переделать не получается((( #include <map> #include <iostream> #include <string> using namespace std; int main() {
C++ try-catch
Читаю книгу Страуструпа. Он пишет (стр 232), что можно не передавать обработчику исключений какое либо значение. #include "stdafx.h" #include <iostream> using namespace std; struct Is_Not_Right_Integer {};
C++ Функции и массивы http://www.cyberforum.ru/cpp-beginners/thread84226.html
Помогите пожалуйста...есть программа - она работает не правильно, что то в ней не так!помогите разобраться!срочно! вот задание: Вычислить произведение всех столбцов массива, у которых первый элемент больше элементов расположенных на главной и побочной диагонали. вот прога: #include <iostream.h> #include <conio.h> #include <stdlib.h> int nod(int a, int b) {
C++ работа с текстовыми файлами !!!!!!Огромная!!!!! просьба помочь доработать программу Задача: Дан текстовый файл F. Найти предложение с максимальным количеством слов, состоящих из N символов. Если таких предложений с максимальным количеством символов несколько, найти их все. Переписать эти предложения в другой файл G. #include <conio.h> #include <stdio.h> #include <string.h> #include <locale.h> #include <stdlib.h> подробнее

Показать сообщение отдельно
Diw
0 / 0 / 0
Регистрация: 17.10.2009
Сообщений: 9
10.01.2010, 18:09     Разместить все элементы с нулевыми значениями в левой части массива
Помогите пожалуйста кому не трудно написать программу. Сам делаю, но результат выводится не тот, обидно последнее задание осталось, а сделать не получается.

задание такое:

Объявить массив целых чисел и заполнить его случайными значениями. Размерность массива 100. Диапазон значений -100 - 100. Разместить все элементы с нулевыми значениями в левой части массива, элементы с отрицательными значениями - за ними, а за ними - элементы с положительными значениями. Примечание: размер массива определяется в начале выполнения программы как случайное число в диапазоне 50 - 200; в тексте программы запрещается применять операцию индексации.

Вот пример есть:

Размерность массива 100.Диапазон значений -50 - 50. Во всех последовательностях отрицательных чисел ограничить значения тех элементов, абсолютное значение которых превышает абсолютное среднее для этой последовательности.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <alloc.h>
int main(void) {
 int size;                   /* размер массива */
 int *Ar;       /* указатель на начало массива */
 int *Cr, *Ir;            /* текущие указатели */
 int av, nn;            /* среднее значение и
    количество элементов в последовательности  */
  randomize();  /* инициализация rand */
  size=random(151)+50;
  printf("size=%d\n",size);
  /* выделения памяти */
  Ar=(int far *)malloc(size*sizeof(int));
  /* заполнение массива случайными числами и
     вывод начального массива */
  printf("Начальный массив:\n");
  for (Cr=Ar; Cr<Ar+size; Cr++) {
    *Cr=random(101)-50;
    printf("%3d ",*Cr);
    }
  putchar('\n');
 
  /* перебор массива */
  for (nn=0, Cr=Ar; Cr<Ar+size; Cr++) { 
    if (*Cr<0)
      /* обработка отрицательного элемента */
      if (!nn) {
          /* начало последовательности: запомнить адрес 
             начала в Ir, установить начальное значение 
               накопителя суммы и счетчике элементов */
         Ir=Cr; av=*Cr; nn=1;
         }
      else {
      /* подсчет суммы и количества элементов */
        av+=*Cr; nn++;
        }
    /* конец обработки отрицательного элемента */
    else /* обработка положительного элемента */
      if (nn) {
          /* если есть необработанная отрицательная последовательность: 
             усреднение и перебор с ограничением */
        for (av/=nn; Ir<Cr; Ir++)
          if (*Ir<av) *Ir=av;
        nn=0; /* последовательность обработана */
        }  /* конец если есть необработанная... */
    }  /* конец перебора массива */
  if (nn) /* если не обработана последняя 
             отрицательная последовательность */
    for (av/=nn; Ir<Cr; Ir++)
      if (*Ir<av) *Ir=av;
  /* вывод результатов */
  printf("Массив-результат:\n");
  for (Cr=Ar; Cr<Ar+size; printf("%3d ",*Cr++));
  putchar('\n');
  /* освобождение памяти */
  free(Ar);
  return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru