2016-09-22 4 views
-2
#include<stdio.h> 
#include<conio.h> 
#define FIRST_PART 7 
#define LAST_PART 5 
#define ALL_PARTS FIRST_PART+LAST_PART 
int main() 
{ 
    printf ("The Square root of all parts is %d", ALL_PARTS * ALL_PARTS) ; 
    getch(); 
    return(0); 
} 

Dans le code au-dessus du première_partie est défini comme 7Comment est la sortie 47?

LAST_PART est défini comme 5

et ALL_PARTS est initialisé comme première_partie + LAST_PART (qui est idéalement 12)

mais quand je suis l'impression ALL_PARTS * ALL_PARTS me donne 47 comme la sortie! (Mais je pensais que la réponse serait 144)

S'il vous plaît quelqu'un peut-il m'expliquer comment?

+0

7 + 5 * 7 + 5 est de 47, alors pourquoi ne pas vous attendre à cette réponse? (ASTUCE: si vous effectuez des calculs dans le cadre d'une macro, retournez entre parenthèses) –

+0

il devrait être 47 – iamsankalp89

Répondre

1

La réponse devrait être 47

FIRST_PART + LAST_PART * FIRST_PART + LAST_PART 

MULTIPLICATION HAS MORE PRECEDENCE 

SO 7 + 5 * 7 + 5 

7 + 35 + 5 

47 
+1

espérons que cela vous aidera –

+0

Mais la valeur 5 + 7 = 12, non? –

+0

La valeur de ALL_PARTS devrait être 12 * 12? –