2017-09-16 120 views
-4

我創建了這個簡單的程序,輸入兩個數字,並打印最大的數字,如果相等,打印出「這些數字相等」,非常簡單。但是當我想要打印數字時,它會打印不同的數字「2293616」。不同的打印輸出(C程序)

這是代碼:

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

int main(void) 
{ 
    int a; 
    int b; 
    printf("Enter TWO Numbers:\n"); 
    scanf("%d%d", &a, &b); 

    if (a > b) 
    { 
     printf("%d is larger", &a); 
    } 

    if (b > a) 
    { 
     printf("%d is larger", &b); 
    } 

    if (a == b) 
    { 
     printf("These numbers are equal"); 
    } 
    getch(); 
} 

輸出是:

Enter TWO Numbers: 
5 (Input) 
10 (Input) 
2293616 is larger (Output) 
+0

'printf(「%d is larger」,&a);'Remove'&' - >'printf(「%d is larger」,a);' – BLUEPIXY

+0

你也可以重寫如果(a> b){...} else if(b> a){...} else/* if(a == b)*/{...}' – BLUEPIXY

回答

0
#include <stdio.h> 
#include <conio.h> 

int main(void) 
{ 
    int a; 
    int b; 
    printf("Enter TWO Numbers:\n"); 
    scanf("%d%d", &a, &b); 

    if (a > b) 
    { 
     printf("%d is larger", a); 
    } 

    if (b > a) 
    { 
     printf("%d is larger", b); 
    } 

    if (a == b) 
    { 
     printf("These numbers are equal %d = %d", a, b); 
    } 
    getch(); 
} 
1

你的打印命令是錯誤的。它們應該像printf(「%d is larger」,a)等等原因& a打印其中變量a在內存中

+0

哦,真的很遺憾那個......我臉上另一個滿貫哈哈 –

0

'&'符號返回變量存儲位置的內存地址,因此隨機數。只需刪除&以創建「printf(」%d是較大的「,a)」。

只是爲了考慮在scanf()中的&符號的原因,是告訴它存儲在變量位置掃描的內容。有效地將變量掃描進去。