为什么输出的值不对呢-。- 程序的作用是寻找最值
#include<stdio.h>
int star(int i,int max,int min,int n)
{
for(i=1;i<=10;i++)
{scanf("%d",&n);
if(i==1)
{max=n;
min=n;}
else
{
if(n>max)
max=n;
if(n<min)
min=n;
}
}
return max;
return min;
}
int main()
{ int ii,maxx,minn,nn;
star(ii,maxx,minn,nn);
printf("max%d\nmin%d\n",maxx,minn);
}
首先我们来说一下,你这个程序是有很大的问题的。函数有且只有唯一一个返回值,当程序执行到return的时候,这个函数就结束并返回了。所以,你这里写2个return来返回最大值和最小值是不可能的。
再者,如果你想使用返回值作为最大值,最小值的传递,那么在main函数中,你调用star函数的时候需要一个变量来接受这个函数的返回值,你这里没有用变量来接受,这是第二个错误。
第三个错误,你这个star函数有2个值需要传给main函数,所以你这里使用返回值来传递参数是不可能实现的,所以就只能使用指针或者全局变量来做了。看你的程序,你是想使用指针做的,既然使用指针做,就需要在star函数的参数中使用指针类型数据。
下面是我基于你的程序帮你改的,你可以看看。
#include<stdio.h>