2013-11-18 2 views
-1

Я получаю противоречивую ошибку, пока я пытаюсь выполнить следующее program.can кто-нибудь сказать мне, где я делаю неправильно ...ошибка линкера в C++ и возвращает нулевое значение, в то время как geeting новой функции VAL

int a,b=0; 
int getvalue(int c) 
{ 
    int n=0; 
    a=c; 
    if(n<c) 
    n=a+b; 
    return n; 
} 
int newvalue(int c) 
{ 
int n=0; 
int a=c; 
if(n<getvalue(c)) 
n=a+b; 
return n; 
} 
voidmain() 
{ 
int j=1; 
int b=newvalue(j); 
cout<<a+b+j<<end1; 
return 0; 
} 
+2

Вот что вы можете захотеть изучить: 'voidmain'. –

+1

У вас не может быть обеих проблем, о которых вы заявляете. Можете ли вы уточнить проблему, включить любые сообщения об ошибках и сказать, что вы ожидаете от своего кода? – juanchopanza

+0

Кроме того, вы объявляете локальную переменную 'a' внутри' newvalue', которая затеняет глобальную переменную. Это специально? Пожалуйста, опубликуйте ожидаемые и фактические результаты. –

ответ

0

Без тестирования я подозреваю, что пространство между void и main может вам помочь. voidmain() -> void main(). Однако, если вы уже можете скомпилировать код, мой совет не поможет.

1

Попробуйте это (end1 должно быть endl), и я установил основную подпись.

#include <iostream> 

int a,b=0; 
int getvalue(int c) 
{ 
    int n=0; 
    a=c; 
    if(n<c) 
     n=a+b; 
    return n; 
} 

int newvalue(int c) 
{ 
    int n=0; 
    int a=c; 
    if(n<getvalue(c)) 
     n=a+b; 
    return n; 
} 

int main() 
{ 
    int j=1; 
    int b=newvalue(j); 
    std::cout<<a+b+j<<std::endl; 
    return 0; 
} 
Смежные вопросы