#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;
}
这是一个c程序,其中输入了3个数字,程序按降序打印。我编译了程序并运行程序。在输入三个数字之后程序就会崩溃。我的代码有问题或者我必须添加一些内容吗?
答案 0 :(得分:5)
那是因为您没有将变量的地址传递给scanf
。改变
scanf("%d %d %d",a,b,c)
到
scanf("%d %d %d",&a,&b,&c)
答案 1 :(得分:3)
尝试使用: -
scanf("%d %d %d",&a,&b,&c)
而不是
scanf("%d %d %d",a,b,c)
因为&
是指变量的地址。
在C中,参数按值传递,因此您需要传递地址(或指针)。当您传递地址(或指针)时,scanf知道它必须放置值的位置。