为什么c语言运行总有错误,c语言指针 编译正确 运行出现错误 为什么

【为什么c语言运行总有错误,c语言指针 编译正确 运行出现错误 为什么】c语言指针 编译正确 运行出现错误 为什么
答案:2信息版本:手机版
解决时间 2019-10-06 16:57
已解决
2019-10-06 06:33
#includex=0,y=0;
void find(int *a,int n,int *max,int *maxpos,int *min,int *minpos)
{
for(n=1; n<10; n++)
{
if(*a{
*max=*(a+n);
*maxpos=n;
}
if(*a>*(a+n))
{
*min=*(a+n);
*minpos=n;
}
}
}
int main()
{
int array[10]={23,45,90,-9,43,90,4,2,-9};
int*max=&array[0];
int*min=&array[0];
int*maxpos=&x;
int*minpos=&y;
int n;
find(array,n,*max,*maxpos,*min,*minpos);
printf("max=%d, maxpos=%d, min=%d, minpos=%d\n",max,maxpos,min,minpos);
return 0;
}
最佳答案
2019-10-06 07:36
1. void find(int *a,int n,int *max,int *maxpos,int *min,int *minpos)定义的时候参数全是指针,
但是你再调用的时候find(array,n,*max,*maxpos,*min,*minpos); 这里传进去的参数全是 值
应该写成find(array,n,max,maxpos,min,minpos)
2.printf("max=%d, maxpos=%d, min=%d, minpos=%d\n",max,maxpos,min,minpos); 这里输出的时候,max,maxpos...这些都是指针,要输出值得话得写成
printf("max=%d, maxpos=%d, min=%d, minpos=%d\n",*max,*maxpos,*min,*minpos)
PS:至于你定义的那个函数本身有没有问题,没有运行还不知道,但是看着感觉语法啥的很乱,调理不是很清楚,真心不明白你准备干嘛?
全部回答
1楼
2019-10-06 07:53
#include
#include
#include
#include //
void exchange(int *a,int *b,int n)
{
int i,c;
for(i=0; i
{
c=a[i];
a[i]=b[i];
b[i]=c; //不小心把
}
// return (a,b);
}
void main(void)
{
int *a,*b,i,n;
printf("please input length:\n");
scanf("%d",&n);
a =(int *)malloc(sizeof(int)*n); 必须开辟空间,指针原来没空间的
b =(int *)malloc(sizeof(int)*n);
printf("please input shuzhu a:\n");
for(i=0; i
scanf("%d",&a[i]);
printf("please input shuzhu b:\n");
for(i=0; i
scanf("%d",&b[i]);
// (b,a)=exchange(a,b,n); //可能有问题
exchange(a,b,n);
for(i=0; i
printf("%d ",a[i]);
printf("\n");
for(i=0; i
printf("%d ",b[i]);
printf("\n");
getch();
}
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
大家都在看
推荐资讯

    推荐阅读