谁能帮我看下哪里错了
#include <stdio.h>intm(int a[],int n,int *max,int *min)
{
int *p;
*max=*min=*a;
for(p=a+1;p<a+n;p++)
{if(*p>*max)
*max=*p;
else if(*p<*min)
*min=*p;}
return 0;
}
main()
{
int a;
int i,*max,*min;
max=a;min=a;
for(i=0;i<10;i++)
scanf("%d",&a);
m(a,10,max,min);
printf("%d\t%d\n",*max,*min);
} 你这样子,让谁看呢,你干嘛不把错误提示贴上来? ravenhu13 发表于 2014-6-3 12:03 static/image/common/back.gif
你这样子,让谁看呢,你干嘛不把错误提示贴上来?
编译没问题 也能输入数字就是每次输出的都是最后输入的数字 vb557 发表于 2014-6-3 12:21 static/image/common/back.gif
编译没问题 也能输入数字就是每次输出的都是最后输入的数字
说说你想达到什么效果? 把int *max,*min;设置成全局变量。就可以了 ravenhu13 发表于 2014-6-3 12:56 static/image/common/back.gif
说说你想达到什么效果?
想输入十个数,最后输出最大值和最小值 ravenhu13 发表于 2014-6-3 13:00 static/image/common/back.gif
把int *max,*min;设置成全局变量。就可以了
还是不行 好像他没有通过那个判断也会把Max和min指向a的下一个元素 能把你修改完能运行的代码发给我看下吗 本帖最后由 oggplay 于 2014-6-3 16:16 编辑
#include <stdio.h>
voidm(int *a,int n,int *max,int *min)
{
int i;
*max=*min=*a;
for(i=1;i<n;i++)
{ if(*max<a)*max=a;
if(*min>a)*min=a;
}
}
int main()
{
int a;
int i,max,min;
for(i=0;i<10;i++)
scanf("%d",&a);
m(a,10,&max,&min);
printf("max=%d\nmin=%d\n",max,min);
return 0;
}
int i, max, min;
max = a; min = a;
for (i = 0; i < 10; i++)
scanf("%d", &a);
m(a, 10, &max, &min);
指针别乱用。。。 oggplay 发表于 2014-6-3 14:24 static/image/common/back.gif
恩 谢谢哈 能用了 santaclaus 发表于 2014-6-3 15:11 static/image/common/back.gif
int i, max, min;
max = a; min = a;
for (i = 0; i < 10; i++)
恩 指针有点麻烦呢 慢慢体会谢谢哈
页:
[1]