Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2015, 21:57   #1
Dima-91
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 198
По умолчанию функция swap помогите в коде

Код:
#include <iostream.h>

#include <stdio.h>
int swap (int a, int b)
{
	int c;
	c = a;
	a = b;
	b = c;
}

 int _tmain(int argc, _TCHAR* argv[]) 
{
	int x,y;
	cout<<"vvedite x\n";
	cin>>x;
	cout<<"vvedite y\n";
	cin>>y;
	swap (x,y);
	cout<<"x ="<<x<<"\t";
	cout<<"y ="<<  y<<"\n";
	system ("pause");
	return 0;
}
По идее функция swap должна менять местами x,y. Подскажите, что не так.
Dima-91 вне форума Ответить с цитированием
Старый 18.10.2015, 22:16   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Потому что ты передаешь параметр не способный понести изменения вовне. Попробуй так:
Код:
int swap (int &a, int &b)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.10.2015, 22:20   #3
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

я вот так накодил)
Код:
#include <iostream>
using namespace std;

void swap (int &a, int &b)
{
    int c=a;
    a = b;
    b = c;
}

 int main()
{
    int x,y;
    cout<<"vvedite x\n";
    cin>>x;
    cout<<"vvedite y\n";
    cin>>y;
    swap (x,y);
    cout<<"x ="<<x<<"\t";
    cout<<"y ="<<  y<<"\n";
    system ("pause");
    return 0;
}
Можете не жать на весы)
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 18.10.2015, 22:53   #4
Dima-91
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 198
По умолчанию

А если использовать
Код:
int swap (int *a, int *b)?
или это нужно в
Код:
swap (*x,*y)
Dima-91 вне форума Ответить с цитированием
Старый 18.10.2015, 23:02   #5
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

По указателю сложнее передавать, плюс будет не айс разыменовывать

Я в них не профи, пусть меня поправят)

Код:
#include <iostream>
using namespace std;

void swap (int *a, int *b)
{
    a=b=new int;
    int c= *a;
    *a =* b;
    *b = c;
    delete a;
    delete b;
}

 int main()
{
    int *x,*y;

    x=y=new int;


    cout<<"vvedite x\n";
    cin>>*x;
    cout<<"vvedite y\n";
    cin>>*y;
    swap (*x,*y);
    cout<<"x ="<<*x<<"\t";
    cout<<"y ="<<*y<<"\n";

    delete x;
    delete y;

    system ("pause");

    return 0;
}
from dark to light)

Последний раз редактировалось Stilet; 19.10.2015 в 09:50.
Алексей_2012 вне форума Ответить с цитированием
Старый 19.10.2015, 09:51   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А если использовать
Можно и так. Как тебе удобнее будет )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.10.2015, 10:07   #7
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Удиви препода функцией swap() без использования временной переменной.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Swap. Макросы. Си Chelovekpredel Помощь студентам 4 13.05.2016 12:05
В коде php попалась функция coalesce(). Что она означает? var_fj54j PHP 4 24.04.2013 10:47
Inline assembler C++ функция swap(). nartov55 Помощь студентам 7 04.04.2012 14:28
SWAP функция moon-guest Общие вопросы C/C++ 4 14.11.2010 18:17
Swap nusik Паскаль, Turbo Pascal, PascalABC.NET 0 27.05.2009 12:45