这程序我把所有的语法错误都改了 但是运行出来结果是不对的,算法有问题
void max_min_value(int *t) // 交换函数
{
int *max, *min, *p, temp;
max = min = t;
for (p=t+1;p
if (*p>*max)
max=p; // 将大数地址赋给 max
else if (*p<*min)
min=p; // 将小数地址赋给 min
}
temp=t[0];
t[0]=*min;
*min=temp; // 将最小数与第一数交换
temp=t[9];
t[9]=*max;
*max=temp; // 将最小数与第一数交换
}
int main(int argc, char* argv[])
{
int a[10];
int *p = a;
for (p = a; p < a + 10; p++)
scanf("%d\n", p);
p = a;
max_min_value(p);
p = a;
for (p = a; p < a + 10; p++)
printf("%d\n", *p);
return 0;
}
两个错误
一、 for循环里面以分号;作为分隔符
for(p=a; p二、函数调用跟声明有区别
这个void max_min_value(int *p);是声明,调用应写成这样:
max_min_value(p);
把for循环中的,改为;
;和,很容易看错