simple c program keeps crashing

2019-03-02 07:46发布

#include <stdio.h>
int main(void)
{
int a,b,c;
printf("Enter values of a,b,c:");
scanf("%d %d %d",a,b,c);

printf("\nDescending order of the numbers entered:");

/*Test for Biggest Number*/
if((a>b)&&(a>c))
 printf("%d",a);
else if((b>a)&&(b>c))
 printf("%d",b);
else if((c>a)&&(c>b))
 printf("%d",c);

 /*Test for Second Biggest Number*/
 if((a>b&&a<c)||(a<b&&a>c))
  printf("%d",a);
 else if((b>a&&b<c)||(b<a&&b>c))
  printf("%d",b);
 else if((c>a&&c<b)||(c<a&&c>b))
  printf("%d",c);

/*Test for Smallest Number*/
if((a<b)&&(a<c))
 printf("%d",a);
else if((b<a)&&(b<c))
 printf("%d",b);
else if((c<a)&&(c<b))
 printf("%d",c);

 return 0;
}

this is a c program in which 3 numbers are entered and the program prints the in descending order. i compiled the program and the ran the program.after entering the three numbers the program would just crash. is there something wrong with my code or do i have to add something?

2条回答
Explosion°爆炸
2楼-- · 2019-03-02 08:42

Try to use:-

scanf("%d %d %d",&a,&b,&c)

instead of

scanf("%d %d %d",a,b,c) 

as & refers to the address of your variables.

In C the parameters are passed by value so you need to pass the address (or pointer). When you pass the address (or pointer) then scanf knows where it has to put the value.

查看更多
男人必须洒脱
3楼-- · 2019-03-02 08:45

That's because you are not passing the address of your variables to scanf. Change

scanf("%d %d %d",a,b,c) 

to

scanf("%d %d %d",&a,&b,&c)
查看更多
登录 后发表回答