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

Заполнение змейкой, массив не 2D! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти разницу между наименьшей и наибольшей зарплатой http://www.cyberforum.ru/cpp-beginners/thread264966.html
(Задача на файлы). Составить программу решения, используя функции. Сама задача: Задан зарплаты K работников. Найти разницу между наибольшей и наименьшей. Типичные действия оформить в функции. На Turbo C++)) нужна ваша помощь!
C++ Найти максимум здраствуйте,помогите написать программу на dev-c++,с объяснением пожалуста. условие: Ввести три числа и найти наибольшее из них.например: 4 15 9,наибольшее 15. заранее благодарен. http://www.cyberforum.ru/cpp-beginners/thread264962.html
C++ Одномерные массивы
Здравствуйте уважаемы программисты! И снова я прибегаю к вашей помощи! Вот задачка: В одномерном массиве все отрицательные заменить максимальным элементом. Полученный массив отсортировать в порядке возрастания. С++. Я понимаю что тут ничего сложного, но я что то ни ни...стыдно! Всем спасибо)
Функции. Факториал. C++
Задание в миниатюрах. Перевожу: Вычислить вероятность появления случайного события ровно m раз в n независимых опытах по формуле Бернулли .... q = 1-p, m, n целые числа; p = действительное положительное число из интервала (0, 1) Нахождение факториала оформить в виде подпрограммы функции. Кое что я написал: #include <iostream> #include <conio.h> #include <math.h> unsigned long...
C++ xml- файлы http://www.cyberforum.ru/cpp-beginners/thread264918.html
Здраствуйте, уважаемы программисты!!! Подскажите пожалуйста, как создавать xml- файлы!!!, т.е. как и с чего начинать.... и скажите где его нужно создавать, в текстовом документе и потом как то сохранять???.а то я почитала про них, даже примеры нашла, а в чём писать не понимаю... что за среда должна быть???? ...заранее спасибо!!!
C++ Проверка на действительное число Собственно, задачу я уже в голове продумал. Но появился вопрос в ходе решения: можно ли как-то в конструкции if задать выражение, чтобы проверялось, является ли число действительным? if (i == int) или по-другому как-то? подробнее

Показать сообщение отдельно
Insar
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 6

Заполнение змейкой, массив не 2D! - C++

27.03.2011, 16:18. Просмотров 750. Ответов 4
Метки (Все метки)

Добрый день всем. вот получил задание по С++ заполнение змейкой, но не такое простое как кажется на первый взгляд( искал на форуме не нашел, и те посты и темы что были про заполнение змейкой мне не подходят). Матрицы как таковой у меня нет, а есть последовательность чисел записываемых в vector<double> data; ну в общем все увидите сейчас.
код полностью мой, но сделать вывод не получается. Может кто что посоветует алгоритм какой нибудь или готовый метод или вообще как это реализовать можно? Заранее благодарю!
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 <iostream>
#include <vector>
#include <string>
#include <cmath>
#include <algorithm>
 
 
 
using namespace std;
 
int main(){
 double numbers,num;
 int boom;
 vector<double> data;
 cout<<"write count of rotation"<<endl;
 cin>>boom; 
 cout << "write data" << endl;
 cin >> numbers;
 while(!cin.eof()){   
 
data.push_back(numbers);    
   cin>>numbers;
   
 }
 
 
 
 if(abs(sqrt(data.size())-(int)(sqrt(data.size())+0.5))<0.0001){ //проверка, на достаточно кол-во данных для матрицы
    
 rotate(data.begin(),data.begin()+boom,data.end());//ротация поля,данные на выход идут только после ротации так называемой змейки
 
 cout<< "show data" << endl;
 int count=1;
for(int i=0; i<data.size();i++){
 if(i%(int)(sqrt(data.size()))==0 && i>1){// проверка заполненности одного ряда матрицы, переход на новую строку
  cout<<endl;
  count++;
  }
if(count%2==0){  //четные ряды должны заполняться в обратном порядке
//ВОТ ЗДЕСЬ не могу придумать универсальный алгоритм для любой матрицы
 
 //reverse(data.begin()+sqrt(data.size()),data.end()-sqrt(data.size()));// это работает только для матрицы 3 на 3, для остальных нет.
  //cout<< data[data.size()-i-1]<<" ";// тоже только для матрицы 3 на 3((
    cout<< data[i]<<" ";
    }
    else{
      cout << data[i]<<" ";
    }
}
      
    
 }   
 
cout<<endl;
cout<< "bla bla "<< endl;
cout << sqrt(data.size())<<endl; 
 
 cout<<endl;
    return 0;
}
Как должна работать программа:

Задайте количество ротаций:
5
Введите квадратную матрицу(ряд матрицы = ряд введенных чисел): // задаем обычную матрицу
1 2 3 4
4 5 6 7
8 9 0 1
2 3 4 5
Матрица после ротации: // программа сначала делает ротацию а потом выводит данные в матрицу змейкой
1 5 4 3
3 2 1 2
4 7 6 5
0 9 8 4
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru