c-扫描未提供预期输出


#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函数返回什么?

相关内容

  • 没有找到相关文章

最新更新