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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Xin4
0 / 0 / 0
Регистрация: 26.03.2009
Сообщений: 10
#1

Вот такая вот задачка с массивом..) - C++

26.03.2009, 11:10. Просмотров 537. Ответов 0
Метки нет (Все метки)

"Из положительных элементов матрицы N сформировать матрицу M(10, KMAX), располагая их в строках матрицы подряд, где KMAX - максимальное число положительных элементов строки матрицы N. Записать нули на место отсутсвтующих элементов. N(10, 10)"
был бы оочень признателен!))

своим кодом я умудрился повесить компилятор xDD
Код
# include<iostream.h>
# include<stdlib.h>
# include<iomanip.h>
# define x 10 
# define y 10

void input(float n[][10]);  //ф-ия заполнения массива
void print(float n[][10]);  //Вывод массива на экран
void result(float n[][10]);  //отрицательные элементы заменяем нулями

int main(){
    float n[x][y]; //наш массив
    input(n); //вызываем функцию "input"-функцию заполнения массива. Возвращаемое зн-е: n
    cout<<"Исходный массив:\n";
    print(n); //вызываем функцию "print"-функцию вывода массива на экран. Возвращаемое зн-е: n
    result(n); //вызываем функцию "result"-ф-ю замены отр. чисел нулями. Возвращаемое зн-е: n
    cout<<"\nИзмененный массив:\n";
    print(n); //еще раз вызываем ф-ю вывода массива на экран
   return 0;
   }
void input(float n[10][10]) //заполняем массив случайными числами
 {int now=10;  
  srand(now); //устанавливаем начальное число now для ряда случайных чисел
  for (int i=0; i<x; i++) //начинаем с нул. эл-та, пока i<x, увеличивать i на ед. и  вып. следующее:
     for (int j=0; j<y; j++) //начинаем с нул. эл-та, пока j<y, увеличивать j на ед. и  вып. следующее:
	n[i][j]=rand()-4000;  //заполняем массив числами от -4000
 }
void print(float n[10][10])  //выводим массив на экран
 {  for (int i=0; i<x; i++)  //начинаем с нул. эл-та, пока i<x, увеличить i на ед. и  вып. следующее:
     {for (int j=0; j<y; j++) //начинаем с нул. эл-та, пока j<y, увеличивать j на ед. и  вып. следующее:
      cout<<setw(7)<<n[i][j]; // выводим на экран элементы массива по порядку
      cout<<endl;  //переводим строку
     }
 }     
void result(float n[10][10]) //отрицательные элементы заменяем нулями
    {for (int i=0; i<x; i++)  //начинаем с нул. эл-та, пока i<x, увеличить i на ед. и  вып. следующее:
      for (int j=0; j<y; j++) //начинаем с нул. эл-та, пока j<y и эл-т массива<0, увеличивать j на ед. и  вып. следующее:
      {
      while (n[i][j]<0)
        {
	 float temp;
         float t;
	 temp=n[i][j]; //временному массиву придаем значение отрицательного эл-та массива
	 j++;             // берем след эл-т массива
	 t=n[i][j]; //временной переменной придаем значение следующего эл-та массива
	 j--;             //идем на шаг назад
	 n[i][j]=t;       //из отрицательного эл-та делаем положительный
	 j++;             //идем на шаг вперед
	 n[i][j]=temp;  //в итоге, отрицательный элемент сместили на этаж повыше..	   
        }
      }
    }
заранее спасибо)))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2009, 11:10     Вот такая вот задачка с массивом..)
Посмотрите здесь:

вот так задачка((( C++
C++ А вот что за стеки!
C++ Вот есть формула
C++ Вот не могу решить !!!
Вот такая интересная штука на C C++
вот такой вот пример C++
C++ Такая вот "сортировка"
Вот нашел учебник по С++! C++
C++ В общем изучаю маленько как кодить в ТС, и вот такая шляпа
C++ Почему выводится такая ошибка? Вот отрывок кода:

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 18:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru