Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Функция, которая не хочет возвращать значение


Автор: Ufyljy 7.10.2007, 11:59
Код

#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<string.h>

int square(void)
{
    int a,value=0;
    
    for(;;)
    {
           printf("Enter value: "); scanf("%d",&value);
           if(value < 0) {break;}
           a+=value;
    }
   return a;
}           

main()
{
      int b; b=square(); printf("\n");
      
      printf("%d",b);
      
      int c; printf("Enter c: "); scanf("%d",&c);
      
      getch();
}      
      



Чисто шокирующий вопрос: почему не выводится возвращаемое функцией значение?

Автор: FREEDEV 7.10.2007, 12:10
переменная "a" не инициализирована
Код

int a = 0,value=0;


Добавлено через 45 секунд
а что дебагер ничего не сказал об этом  smile 

Автор: Kuvaldis 7.10.2007, 12:13
Ufyljy, 
Цитата

int a,value=0;

таким образом ты НЕ инициализируешь переменную a, в ней содержится мусор 
надо так (как вариант):
Код

int a, value;
a = value = 0;

А вообще пользуйся отладчиком, чтобы смотреть, что и где у тебя в программе smile

Автор: NikeDeForest 7.10.2007, 12:25
Что значит не выводится значение? Это раз.
А два, ты используешь неинициализированную переменную "а". Value проинициализировал, про переменную "а" забыл почему-то.

Добавлено через 29 секунд
Ага, опоздал значит smile

Автор: Ufyljy 7.10.2007, 14:21
ААААААААААА!!! Вот это я натупил  smile 
Спасиб большое, что подсказали  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)