Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблем с выводом результата функции 
:(
    Опции темы
Kinch
  Дата 13.1.2009, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 13.1.2009

Репутация: -1
Всего: -1



народ помоги пжлст!!

Задача такая
Написать Функцию которая переводит заданный одномерный массив в зеркальное отображение и выводит его на экран.

вот код

int z (int*a, size_t s) {
int*b=newint [s];
int k=(s-1); int i=0;
while ((i<s)&&(k=0))
{b[k]=a[i];
--k; ++i}

проблема такая-как заставить функцию вывести получившийся массив на экран?
по элементам в цикле нельзя((( smile 


помогите пжлст, срочно нуна!!)) smile 
PM MAIL   Вверх
jonie
Дата 13.1.2009, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118




Код


for(int i=0;i<SIZE;++i){
  std::cout<<array[i]<<' ';
}




--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Kinch
Дата 13.1.2009, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 13.1.2009

Репутация: -1
Всего: -1



спс)) ща проверю))
PM MAIL   Вверх
Kinch
Дата 13.1.2009, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 13.1.2009

Репутация: -1
Всего: -1



нехочет((( помогите пжлст!!!
PM MAIL   Вверх
Kinch
Дата 13.1.2009, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 13.1.2009

Репутация: -1
Всего: -1



Код

//---------------------------------------------------------------------------

#pragma hdrstop
#include <iostream>
#include <math.h>
#include <conio>
//---------------------------------------------------------------------------

#pragma argsused
 int z (int*a, size_t s) {
int*b=new int [s];
int k=(s-1); int i=0;
while ((i<s)&&(k=0))
{
b[k]=a[i];
--k; ++i;
}


                           }

using namespace std;
int main()

{
int i,k;
cout<<endl<<"n=";
int n;
cin>>n;
if(n<1) return -1;
int*a=new int[n];
for(i=0;i<n;i++)
{
cout<<"a["<<i<<"]=";
cin>>a[i];
}

z(&a[i], n);
for(int i=0;i<s;++i){
  std::cout<<a[i]<<' ';
}
getch ();

        return 0;
}
//---------------------------------------------------------------------------



вот код полностью(( он робит((
PM MAIL   Вверх
pan2004
Дата 13.1.2009, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 357
Регистрация: 28.7.2007

Репутация: 2
Всего: 9



Два вопроса:
1. Что это за ... такое?
Код

z(&a[i], n);

2. Тут что-то явно не так. Смотреть разницу между = и == (в C это разные вещи, примерно как := и = в Паскале)
Код

while ((i<s)&&(k=0))



--------------------
Qt4/C++ fan
WinXP SP3: MSVC++2005 Qt4.5.1 Boost1.39
сыграем в дурака?
PM MAIL   Вверх
Kinch
Дата 13.1.2009, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 13.1.2009

Репутация: -1
Всего: -1



Цитата

1. Что это за ... такое?


z(&a[i], n);


вызов функции, разве не так?


Цитата

2. Тут что-то явно не так. Смотреть разницу между = и == (в C это разные вещи, примерно как := и = в Паскале)

    
while ((i<s)&&(k=0))


исправил)
PM MAIL   Вверх
pan2004
Дата 13.1.2009, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 357
Регистрация: 28.7.2007

Репутация: 2
Всего: 9



Цитата(Kinch @  13.1.2009,  20:38 Найти цитируемый пост)
вызов функции, разве не так?

И что, работает?
Если нет, подумай, чему равно i. И почему не написано просто z(a, n).


--------------------
Qt4/C++ fan
WinXP SP3: MSVC++2005 Qt4.5.1 Boost1.39
сыграем в дурака?
PM MAIL   Вверх
mes
Дата 13.1.2009, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250




Цитата(Kinch @  13.1.2009,  16:15 Найти цитируемый пост)
Написать Функцию которая переводит заданный одномерный массив в зеркальное отображение и выводит его на экран.

Вроде так :
Код

void mirror (int * begin, int * end) 
{
   for (--end; begin<end; ++begin, --end)
   std::swap (*begin, *end);
}

int main
{
// mas - массив
// size размер массива

    for (int i=0; i<size; ++i)  std::cout <<mas[i] << " ";  // Предварительный вывод
    std:cout << std::endl;

    mirror (mas, mas+size); // Отражаем массив

    for (int i=0; i<size; ++i)  std::cout <<mas[i] << " "; // Контрольный вывод
    std:cout << std::endl;

    return 0;
}

Проверяйте. smile

Это сообщение отредактировал(а) mes - 13.1.2009, 21:01


--------------------
PM MAIL WWW   Вверх
cutwater
Дата 13.1.2009, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 2
Всего: 10



Цитата(Kinch @  13.1.2009,  20:38 Найти цитируемый пост)
z(&a[i], n);

Вопрос не в этом... объясните весь кармический смысл взятия адреса итого элемента массива, при чем после цикла i == n
следовательно Вы берете адрес на не выделенную область памяти.

Вопрос второй, Вы выделяете в функции z память под еще один массив. Во-первых не удаляете один из них ( по логике старый). во-вторых этот новый массив с "зеркальным отражением" по выполнении функции попросту исчезает, то есть смысл его создавать 0
И 3 можно было бы организовать в один цикл без выделения памяти под еще один массив...
И короче говоря если я правильно понял задачу, то вот мой вариант.

Код

void z ( int * mas, int size)
{
    for(int i = 0; i  < size / 2; i++)
    {
         int tmp = mas[i];
         mas[i] = mas[size - i - 1];
         mas[size - i - 1] = mas[i];
    }
}


Честно говоря голова после рабочего дня отказывается работать, так что если где не прав или не понял задания прошу извинить


--------------------
user posted image
PM MAIL   Вверх
baldina
Дата 13.1.2009, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



 for (--end; begin<end; ++begin, --end)

PM MAIL   Вверх
cutwater
Дата 13.1.2009, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 2
Всего: 10



2 mes
У Вас, признаюсь, более красивое решение, хотелось бы только чтобы человек научился думать, ибо посмотрев в код очевидно что необходимо понимать что пишешь.

Это сообщение отредактировал(а) cutwater - 13.1.2009, 21:02


--------------------
user posted image
PM MAIL   Вверх
mes
Дата 13.1.2009, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(baldina @  13.1.2009,  19:57 Найти цитируемый пост)
 for (--end; begin<end; ++begin, --end)

 smile  исправил 


--------------------
PM MAIL WWW   Вверх
baldina
Дата 13.1.2009, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



у mes и более универсальное, если параметризовать тип в последовательности
PM MAIL   Вверх
Kinch
Дата 13.1.2009, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 13.1.2009

Репутация: -1
Всего: -1



mes, а Вы можете пошагово пояснить что вы делали и написать код полность,?)) а то я ничо не понял((

Это сообщение отредактировал(а) Kinch - 13.1.2009, 21:19
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1258 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.