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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> функция return, не могу разобраться 
:(
    Опции темы
PELIKANN
Дата 14.10.2008, 18:20 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



помогите разобраться с функцией return....я новичок в С....
как мне сделать так чтобы после выполнении подпрограммы значение переменной которое изменялось в подпрограмме сохранилось и было использовано в дальнейшем в основной программе...а конкретно что надо написать return?

заранее спасибо
PM MAIL   Вверх
Fin
Дата 14.10.2008, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


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

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



Через return ты можеш возвратить только одну переменную. Если хочеш несколько переменных возвратить, то нужно работать через указатели. Пример с некоторыми ошибками, но в принципе рабочий.
Код

#include <stdio.h>

int someFunction(int *a, int *b)
{
   int res=0;
   (*a)++;
   (*b)++;
   res= *a + *b;
   return res;
}

int main()
{
   int a=3;
   int b=4;
   int c=someFunction(&a, &b);
   printf("%d + %d = %d\n", a, b, c);
   return 0;
}

Подумай, что произойдет, если я вызову someFunction(0, 0); И как избежать последствия.

Это сообщение отредактировал(а) Fin - 14.10.2008, 18:59


--------------------
Пролетал мимо.
PM MAIL   Вверх
mrbrooks
Дата 14.10.2008, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 19
Всего: 306



PELIKANN, видишь ли друг - в книжках по С++ и не про такое пишут - поверь мне... и почитай.  smile ведь для кого-то их пишут.
PM MAIL   Вверх
PELIKANN
Дата 14.10.2008, 19:15 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



mrbrooks не поверишь читал....только от этого мало что изменилось smile

Добавлено через 12 минут и 42 секунды
Представим что у меня есть такая программа. Символами ------- обозначены различные операции....
Код

int CharToInt(char s[],int z)
{
int n=0;
if (s[z]>='0' && s[z]<='9')
    n=s[z]-'0';
return n;
}

main()
{
-----------
s[i]=k;
CharToInt(s,i);
res=n+2;

----------
}


после выполнения функции CharToInt значение n теряется....как избежать

Цитата

Подумай, что произойдет, если я вызову someFunction(0, 0); И как избежать последствия.


наверно ошибку выдаст....ведь в мы работаем с указателями....надо поставить someFunction(&0, &0)
PM MAIL   Вверх
IKM2007
Дата 14.10.2008, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зима близко
**


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

Репутация: 3
Всего: 40



PELIKANN, собственно, что ты делаешь?
Надо писать так
Код

n=CharToInt(s,i);


или сразу так
Код

res=CharToInt(s,i)+2;


функцию лучше писать так.
Код

int CharToInt(char z)
{
return (z>='0' && z<='9')?z-'0':0;
}


Это сообщение отредактировал(а) IKM2007 - 14.10.2008, 20:06


--------------------
"К чёрту обстоятельства, я создаю возможности."
Брюс Ли
PM MAIL Skype   Вверх
mes
Дата 14.10.2008, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(PELIKANN @  14.10.2008,  19:15 Найти цитируемый пост)
CharToInt(s,i);
res=n+2;


Код

res=CharToInt(s,i)+2;



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


Шустрый
*


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

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



всем спасибо...я разобрался smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

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

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

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

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


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

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


 




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


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

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