#include <stdio.h>
int Second_minimum;
int GetSecondMinimum(int,int,int);
int main(){
int a = scanf("%d",&a);
int b = scanf("%d",&b);
int c = scanf("%d",&c);
int Secondminimum=GetSecondMinimum(a,b,c);
printf("%d",Secondminimum);
}
int GetSecondMinimum(int x,int y,int z){
if(x>y && x<z){
Second_minimum=x;}
else if(x>z && x<y){
Second_minimum=x;}
else if(y>x && y<z){
Second_minimum=y;}
else if(y<x && y>z){
Second_minimum=y;}
else if(z>x && z<y){
Second_minimum=z;}
else if(z<x && z>y){
Second_minimum=z;}
return Second_minimum;
}
上述代码不是根据用户输入进行打印的。
例如,如果我将一个直接值传递给函数,它将显示正确的答案。
如果我通过GetSecondMinimum(20,10,30)
,它将打印20
,但如果我通过以下方式传递参数,它将不打印:
a=20;b=10;c=30;
GetSecondMinimum(a,b,c)
#include <stdio.h>
int Second_minimum;
int GetSecondMinimum(int,int,int);
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
int Secondminimum=GetSecondMinimum(a,b,c);
printf("%d",Secondminimum);
}
int GetSecondMinimum(int x,int y,int z)
{
if(x>y && x<z)
{
Second_minimum=x;
}
else if(x>z && x<y)
{
Second_minimum=x;
}
else if(y>x && y<z)
{
Second_minimum=y;
}
else if(y<x && y>z)
{
Second_minimum=y;
}
else if(z>x && z<y)
{
Second_minimum=z;
}
else if(z<x && z>y)
{
Second_minimum=z;
}
return Second_minimum;
}
输出:
20 10 30
20
您的疑虑:
#include <stdio.h>
int main ()
{
int a;
int b;
a = scanf("%d", &b); //lets input b=23
printf("b = %d",b);
printf("na = %d", a);
return 0;
}
输出:
b = 23
a = 1
int a = scanf("%d",&a)
;正在返回成功扫描的项目数(在本例中为"b"(,因此,如果您执行此操作并输入b=23
的值,则它将返回1
,即扫描项目数。因此,a=1;这里a
将包含scanf
函数的返回值。
scanf返回成功扫描的项目数
参考:scanf函数返回什么?