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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2008, 17:44   #1
Graf Xandr
Пользователь
 
Регистрация: 03.12.2008
Сообщений: 58
Печаль BORLAND C++, решил простую задачу с функцией, кажеца что-то не так.

Задача: разработать функцию f(x), которая в двузначном числе меняет цифры местами, а остальные оставляет без изменения.
А вот, то что я написал:

#include <iostream.h>
#include <math.h>
#include <conio.h>
void func(int a, int b, int c, int d)
{ b=a%10; c=a/10; d=b*10+c; }
void main()
{short a,b,c,d;
cout<<"Vvedite chislo";
cin>>a;
func(a,b,c,d);
cout<<a;
getch();
}

Но кажется, есть ошибки. Более того, не указал, про недвузначные числа. Проверьте, пожалуйста, спасибо заранее!
Graf Xandr вне форума Ответить с цитированием
Старый 06.12.2008, 18:15   #2
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Я бы испоьзовал бы строку. а не интежер

Поскольку данные действия проще всего делать именно со строкой

#include <iostream.h>
#include <string.h>
#include <conio.h>
void func(char a[3]) //поясню почему именно 3, в последнем элементе масива типа char храниться нулевой символ.
{
char b[2];
b[0]=a[0];
a[0]=a[1];
a[1]=b[0];
}
void main()
{char a[3];
cout<<"Vvedite chislo";
cin>>a;(//вообще для работы со строкой используют gets(a), поскольку cin обрезает все, что после первого же пробела, но тут это не критично.
if(strlen(a)==2)//strlen возвращает долинную строки
{
func(a);
cout<<a[0]<a[1];;}
else
{cout<<"razmer chissla ne raven 2-m znakam"<<endl;}
getch();
}
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 06.12.2008, 19:57   #3
StarWorm
Форумчанин
 
Регистрация: 17.11.2008
Сообщений: 233
По умолчанию

Мда... Какой запущенный у вас код, господа!
void func(int a, int b, int c, int d)
Код:
void func(int a, int b, int c, int d)
{ b=a%10; c=a/10; d=b*10+c; }
во первых зачем тебе нужно передавать в функцию неинициализированные переменные... Не проще ли задать их внутри функции?!?!
во вторых ты передаешь переменные по значению, а это значит, что их изменение внутри функции никак не отразится на переменных в main()... Ну а про второй пост, я вообще молчу! :lol:
StarWorm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не работает, что-то не так. Анжелика Помощь студентам 2 06.12.2008 21:47
Что то не так с переменными.. adwaer Помощь студентам 1 19.06.2008 08:42
Помогите решить простую задачу Teh Общие вопросы Delphi 4 24.04.2008 07:37
Помогите решить простую задачу по C++ steal13 Общие вопросы C/C++ 6 03.01.2008 09:40
Что-то не так Radiofuck Помощь студентам 2 16.01.2007 22:06