用//注释并且修改:
#include
int main()
{
int maxn,minn,num[6],i; //这儿*maxn,*minn
printf("Please type in 6 whole numbers: ");
for(i=0;i<6;i++)
scanf("%d",&num[i]);
int findex(int *minnum,int *maxnum,int num[6]);//这儿加句函数声明
findex(&minn,&maxn,num);//这儿num[6]
printf("The max is %d \nThe min is %d",minn,maxn);
return 0;
}
int findex(int *minnum,int *maxnum,int num[6])
{
int i;
*maxnum = num[0];
*minnum = num[0];
//for(i=1;i<6;i++)
//if(num[i]>num[i-1])
//{*maxnum = num[i];
//*minnum = num[i-1];
//}
for(i=1;i<6;i++)
{
if(*maxnum
if(*minnum>num[i])
*minnum=num[i];
}
return 0;
}
结果:
没看你的算法对不对,不过int *maxn,*minn,num[6],i; 这里你定义的就是指针啊。是不是应该写成int maxn,minn,num[6],i;。还有findex(&minn,&maxn,num[6]); 这个应该是 findex(&minn,&maxn,num); 这样吧。
在main函数里,指针maxn,minn都没有初始化啊。他们是一个随机的值被传替到子函数里。其实没必要定义2个指针,一个就够了。
很明显这个算法不对。findex(int *minnum,int *maxnum,int num[6])函数中传递的参数中第三个应该是个数组,num[6]这貌似是一个具体的整数值,所以应该改为 int num[]表示一个数组。后面在加一个参数,int n,用来表示数组的长度。还有你的输出有问题printf("The max is %d \nThe min is %d",minn,maxn);输出的是地址,前面应该加上* !