尝试打印时结果奇怪

时间:2013-11-11 15:17:30

标签: c

执行后,结果非常奇怪:

#include <stdio.h>
int main(){
  int a,b; 
  printf("enter two numbers :");
  scanf("%d%d",&a,&b);
  if(a>b){
    printf("maximum number is %d",&a);
  } 
  else{
    printf("maximum number is %d",&b);  
  }
  return 0; 
}

在控制台中输入两个数字结果为:

maximum number is 2686696

2686696非常奇怪对我来说,如果我输入两个数字,如5,3必须显示我5但显示2686696 !!!

任何人都可以指导我吗?

4 个答案:

答案 0 :(得分:5)

您正在尝试打印int的地址而不是其值。这样做:

if(a>b){
    printf("maximum number is %d",a);
}
else{
    printf("maximum number is %d",b);  
}

&运算符返回ab的地址。

答案 1 :(得分:0)

&删除printf以打印该值,现在您正在打印该地址。应该是:

printf("maximum number is %d",a);

答案 2 :(得分:0)

&amp;在printf中打印变量的地址而不是值。

要打印值,请使用:

if(a>b){
   printf("maximum number is %d",a);
}
else{
    printf("maximum number is %d",b);  
}

答案 3 :(得分:0)

如果您有兴趣打印数字&printf,请从a的参数中移除b运算符,否则请将格式说明符%d更改为{ {1}}如果您要打印%pa的地址。

b