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

Перестановка элементов крест накрест - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ не подключается библиотека http://www.cyberforum.ru/cpp-beginners/thread398599.html
скачал Microsoft Visual C++ 2010 Express пытаюся подключить библиотеку math и возникает ошибка не удается открыть источник файл "math"
C++ Ввести номер месяца и... нужно 1) Ввести номер месяца и вывести количество дней в нем, а также число ошибок при вводе. Пример: Введите номер месяца: Введите номер месяца: -2 2 Введите номер месяца: В этом месяце 28 дней. 11 Вы вводили неверно 0 раз. В этом месяце 30 дней. Вы вводили неверно 1 раз. 2)Ввести номер месяца и... http://www.cyberforum.ru/cpp-beginners/thread398598.html
error C2447 C++
Здравствуйте друзья, не получается разобраться самому в коде и прошу у вас помощи. объясните что в этом коде не так что выдает error C2447? Добавляю еще свои библиотеки в документе "bos_2.rar" error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа) #include "stdafx.h" #include <iostream>
Заходя в функцию сбрасывается адрес строки C++
Вообщем проблема в следующем... я получаю имя файла в формате: C:\folder\text.txt Мне необходимо добавить после каждого слеша ещё один такой (C:\\folder\\text.txt) или заменить на противополоный (C:/folder/text.txt) С этим проблем нет, когда все делаю в одной функции, но когда я добавил функцию, которая получает char* и должна возвращать char*, то как только захожу в тело функции моя переменная...
C++ Почему sqrt требует тип double? http://www.cyberforum.ru/cpp-beginners/thread398592.html
Здравствуйте. Заметил, что в VS 2008 при вызове некоторых математических функций, в частности sqrt, требуется явно приводить тип к double. Допустим: int x = 16; sqrt(x); // ошибка, несоответствие типов sqrt(static_cast<double>(x)); // нормально Почему не происходит неявное преобразование? Как в случае с какой-нибудь пользовательской функцией, типа double foo(double x);
C++ Методы деления отрезка Разработать программу, выполняющую сравнение методов: 1) деления отрезка пополам 2) хорд 3) касательных 4) итераций Помогите найти реализацию этих методов в отдельных функциях. Главное как можно проще и понятнее. Вот напрмиер метод хорд: //Метод хорд подробнее

Показать сообщение отдельно
Nevado4ka
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 45
04.12.2011, 17:49  [ТС]     Перестановка элементов крест накрест
Цитата Сообщение от soon Посмотреть сообщение
Так в ТЗ прописано? Или можно отсекать любые?

Добавлено через 8 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
template <class T> void swapInSqr(T **arr, int rows, int cols)
{
    rows -= (rows & 1);
    cols -= (cols & 1);
    
    for(int i = 0; i < rows; i += 2)
        for(int j = 0; j < cols; j += 2)
        {
            T tmp = arr[i][j];
            arr[i][j] = arr[i + 1][j + 1];
            arr[i + 1][j + 1] = tmp;
            
            tmp = arr[i][j + 1];
            arr[i][j + 1] = arr[i + 1][j];
            arr[i + 1][j] = tmp;
        }
}
При нечетном количестве строк, отсекает нижнюю строку, при нечетном количестве столбцов - правый. Чтобы изменить к примеру столбцы, нужно убрать строчку cols -= (cols & 1); и в цикле прописать int j = (cols & 1), т.е. этот
код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
template <class T> void swapInSqr(T **arr, int rows, int cols)
{
    rows -= (rows & 1);
    
    for(int i = 0; i < rows; i += 2)
        for(int j = (cols & 1); j < cols; j += 2)
        {
            T tmp = arr[i][j];
            arr[i][j] = arr[i + 1][j + 1];
            arr[i + 1][j + 1] = tmp;
            
            tmp = arr[i][j + 1];
            arr[i][j + 1] = arr[i + 1][j];
            arr[i + 1][j] = tmp;
        }
}
будет отсекать нижнюю строку и левый столбец. С изменением строки аналогично меняете int i = 0;
в ТЗ сказано что отсекать нужно сверху и справа... а я еще забыла сказать, что нужно все это проделать без создания доп. массива

Добавлено через 38 секунд
Цитата Сообщение от taras atavin Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void resort(int **a, int n)
{
 int i;
 int j;
 int n1;
 int n2;
 n1=(n-1)/2)*2+1;
 n2=(n-1)/2)*2;
 for (i=1; i<n1; i+=2)
 {
  for (j=0; j<n2; j+=2) 
  {
   t=a[i][j];
   a[i][j]=a[i+1][j+1];
   a[i+1][j+1]=t;
   t=a[i][j+1];
   a[i][j+1]=a[i+1][j];
   a[i+1][j]=t;
  }
 }
}
Забыла сказать, что обязательно без создания дополнительного массива!
 
Текущее время: 12:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru