题目要求在分函数中引用指针,但添加指针后不是指针调用冲突就是直接不运行。
题目大意:随机生成数组,分函数调用指针返回最大值和最小值。
#include"stdio.h"
#include"stdlib.h"
int *a;int n;int *max=0;int *min=0;int b[10];int s=1,d=1;
void fun(int *a,int n,int s,int d);
int main()
{
a=b;
for(n=0;n<10;n++)
*(a+n)=rand()%100;
printf("生成的随机数为:");
for(n=0;n<10;n++)
printf(" %d",*(a+n));
putchar('\n\n');
printf("数组最大数为:");
fun(a,n,s,d);
printf("%d\n数组最小数为:%d\n",s,d);
}
void fun(int *a,int n,int s,int d)
{
for(n=1;n<10;n++)
{
if(*(a+n)>s)s=*(a+n);
if(*(a+n)<d)d=*(a+n);
}
}
添加的多余变量s,d是我在尝试修正,但是没有效果。
以上为编写的代码,望指正。
修改如下,供参考对照:
#include"stdio.h"
#include"stdlib.h"
void fun(int *a,int n,int *s,int *d);
int main()
{
int b[10],*a,n,max=0,min=0;
a=b;
for(n=0;n<10;n++)
*(a+n)=rand()%100;
printf("生成的随机数为:\n");
for(n=0;n<10;n++)
printf(" %d",*(a+n));
printf("\n\n");
//putchar('\n\n');
fun(a,10,&max,&min);
printf("数组最大数为:%d,数组最小数为:%d\n",max,min);
//printf("%d\n数组最小数为:%d\n",s,d);
return 0;
}
void fun(int *a,int n,int *s,int *d)
{
int i;
*s=*a;*d=*a;
for(i=0;i<n;i++)
{
if(*(a+i)>*s)*s=*(a+i);
if(*(a+i)<*d)*d=*(a+i);
}
}