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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему return не выводит результат на экран, подскажите в чём я ошибаюсь? 
:(
    Опции темы
stat007
Дата 8.11.2008, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



По идее после выполнения кода ниже в фнуции sum(), на экран должен выводиться результат сложения 3 чисел, но почемуто не выводится, подскажите почему? 
И ещё одно при вызове в main(), этой же функции sum(), компилятор ругается, говорит что a,b и c не объявлены!
Подскажите пожалуйста эти моменты, ведь вроде ж правильно всё написано.

Код


#include<iostream>
using namespace std;
void myfunc();
int sum(int a, int b, int c);
void myfunc()
{
    cout<<"Slojenye 3 chisil: "<<endl;
}
int sum(int a, int b, int c)
{
    int res;
    cout<<"Enter 3 numbers: "<<endl;
    cin>>a>>b>>c;
    res = a+b+c;
    return res;
}

int main()
{
    cout<<"Vizov fukciy!!!"<<endl;
    myfunc();
    sum(a,b,c);
    return 0;
}


PM MAIL   Вверх
whoever
Дата 8.11.2008, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

#include<iostream>
using namespace std;

void myfunc();
int sum(int a, int b, int c);

void myfunc()
{
    cout<<"Slojenye 3 chisil: "<<endl;
}

int sum(int a, int b, int c)
{
    int res;
    cout<<"Enter 3 numbers: "<<endl;
    cin>>a>>b>>c;
    res = a+b+c;
    return res;
}

int main()
{
    cout<<"Vizov fukciy!!!"<<endl;
    myfunc();

    int a, b, c;
    cout<<"Resultat: "<<sum(a,b,c)<<endl;

    return 0;
}

Вы не создали трех переменных, которые передаете функции sum(int, int, int). И нигде не выводили результат.

Это сообщение отредактировал(а) whoever - 8.11.2008, 22:16
PM   Вверх
Fin
Дата 8.11.2008, 22:15 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Вам батенька нужно точно читать учебник. Элементарные веши. Прежде чем спрашивать, ответьте сами себе на вопросы. Почему return должно выполнять косвенные действия, а именно вывод на экран? У этого оператора только одна задача, окончить выполнение функции и если надо возвратить значение из функции. Второй вопрос. Что такое зона видимости переменных. В функции main переменные a, b, c не определены и естественно компилятор ясно вам дает это понять. Учите RTFM.


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


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


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

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



ИМХО, так логичнее : 
Код

#include<iostream>
using namespace std;

void myfunc()
{
    cout<<"Vizov fukciy!!!"<<endl;
}

int sum(int a, int b, int c)
{
    return a+b+c;
}

void action_sum3  ()
{
    cout<<"Slojenye 3 chisil: "<<endl;
    cout<<"Enter 3 numbers: "<<endl;
    int a, b, c;
    cin>>a>>b>>c;
    cout << sum(a,b,c) << endl;
}


int main()
{
    myfunc();
    action_sum3  ();
    return 0;
}


Это сообщение отредактировал(а) mes - 8.11.2008, 22:50


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


Опытный
**


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

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



оу... да точно, спс!!!
PM MAIL   Вверх
IKM2007
Дата 8.11.2008, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



mes, а почему int action_sum3(), лучше void, ведь функция ничего не возвращает.


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


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


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

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



Цитата(IKM2007 @  8.11.2008,  22:28 Найти цитируемый пост)
mes, а почему int action_sum3(), лучше void, ведь функция ничего не возвращает. 

опечатка, послeдствия  copypasta   smile  - исправил 

Это сообщение отредактировал(а) mes - 8.11.2008, 22:49


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


Опытный
**


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

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



whoever, всё отлично работает, но почемуто выдаёт теперь 3 warning(s) ошибки
PM MAIL   Вверх
FunkyFlow
Дата 9.11.2008, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Инициализируй переменные:

int a, b, c;
a = b = c = 0;

я бы сделал так:

#include <iostream>

bool init(int& a, int& b, int& c)
{
    try
    {
        std::cout << "Enter numbers: ";
        std::cin >> a >> b >> c;
        return true;
    }
    catch(...)
    {
        std::cerr << "Error init" << std::endl;
        return false;
    }
}

void print(int& a, int& b, int& c)
{
    std::cout << a << " + " << b << " + " << c << " = " << a + b + c << std::endl;
}

int main()
{
    int a = 0, b = 0, c = 0;
    
    if (init(a, b, c))
    {
        print(a, b, c);
    }
    
    return 0;
}

Это сообщение отредактировал(а) FunkyFlow - 9.11.2008, 00:24
PM MAIL   Вверх
SVN74
Дата 9.11.2008, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Один из возможных вариантов...
==============================
#include<iostream>
#include<windows.h>
using namespace std;


void MyPrint(char* Txt)
{
 CharToOem(Txt,Txt);
 cout<<Txt;
}
void sum(int a, int b, int c)
{
    int res;
    res = a+b+c;
    cout <<res;
}

int main()
{
  MyPrint("Вызов Функции !!! \n Сложение трех чисел: \n");
   int a,b,c;
    MyPrint("Введите 3 числа \n");
     cin>>a>>b>>c;
      MyPrint("Ответ - ");
       sum(a,b,c);
Sleep(5000);
    return 0;
}


Это сообщение отредактировал(а) SVN74 - 9.11.2008, 00:40
PM MAIL WWW   Вверх
SVN74
Дата 9.11.2008, 01:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А вот код более наглядно демонстрирует передачу значений в функцию и наоборот...
===========================
Код

#include<iostream>
#include<windows.h>
using namespace std;
///////////////////////////////
char* MyPrint(char* Txt)
{
 CharToOem(Txt,Txt);
 return Txt;
}
///////////////////////////////
int sum(int a, int b, int c)
{
  return a+b+c;
}
///////////////////////////////
int main()
{
  cout << MyPrint("Вызов Функции !!! \n"
                  "Сложение трех чисел: \n"
                  "Введите 3 числа \n");
   int a1,b1,c1;
    cin>>a1>>b1>>c1;
    cout << MyPrint("Ответ - ") << sum(a1,b1,c1);
Sleep(5000);
    return 0;
}

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

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

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

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

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


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

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


 




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


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

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