2015-12-10 6 views
-2

У меня есть эта «простая» проблема: у меня есть входные 2 числа int, и я должен выводить их в порядке убывания.Неверное преобразование из int * в int с использованием функций

#include <stdio.h> 
#include <iostream> 

int fnum() 
{ 
    int NUM; 
    scanf("%d",&NUM); 
    return NUM; 
} 

void frisultato(int x,int y) 
{ 
    if (x>y) 
    { 
      printf("%d",x); 
      printf("%d",y); 
    } 
    else 
    { 
      printf("%d",y); 
      printf("%d",x); 
    } 

    return; 
} 

int main() 
{  
     int A,B;  
     A=fnum; 
     B=fnum; 

     frisultato(A,B); 
} 

Я получаю ошибку при

A=fnum; 
B=fnum; 

мой компилятор говорит: недопустимый преобразование междунар (*)() в целое.

Это первый раз, когда я использую функции, в чем проблема? Спасибо!

  • Michelangelo.
+1

'A = fnum;' come on ... – ouah

+0

'A = fnum()'. 'fnum' - это сама функция. '()' является оператором вызова: называть то, что слева, без аргументов. Таким образом, чтобы получить результат от функции к функции, вы применяете оператор вызова: 'fnum()'. – Arkadiy

ответ

3
A=fnum; 
    B=fnum; 

Вы на самом деле не вызывая функцию fnum здесь. Вы пытаетесь назначить указатель на переменную intA и B.

Для вызова функции, выполните следующие действия:

A=fnum(); 
    B=fnum(); 
0

Извините, но так как вы, кажется, новичок в программировании, я не мог помочь, но рефакторинг/комментировать код:

#include <stdio.h> 
#include <iostream> 

int fnum() 
{ 
    int num; 
    scanf("%d",&num); 
    return num; 
} 

void frisultato(int x, int y) 
{ 
    if (x>y) 
    { 
     printf("%d",x); 
     printf("%d",y); 
    } 
    else 
    { 
     printf("%d",y); 
     printf("%d",x); 
    } 

    /* No need to return in void */ 
} 

int main() 
{  

    /* 
     Variables in C are all lowercase. 

     UPPER_CASE is usually used for macros and preprocessor directives 
     such as 

     #define PI 3.14 
    */ 
    int a, b; 
    a = fnum(); //Function calls always need parenthesis, even if they are empty 
    b = fnum(); 

    frisultato(a, b); 

    /* 
     Your main function should return an integer letting whoever 
     ran it know if it was successful or not. 

     0 means everything went well, anything else means something went wrong. 
    */ 
    return 0; 
} 

Также не подпишите свое имя в вопросах StackOverflow.

Смежные вопросы