认真思考过了,但还是解决不了,关于指针的
输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。#include "stdafx.h"
#include<stdio.h>
void intput(int number[])
{
int i;
printf("input 10 numbers:");
for(i=0;i<10;i++)
{
scanf("%d",&number[i]);
}
}
void max_min_value(int number[])
{
int *max,*min,*p,temp;
max=min=number;
for(p=number+1;p<number+10;p++)
{
if(*p>*max)max=p;//将大数地址赋给max
else
{
if(*p<*min)min=p;//将小数地址赋给min
}
}
temp=number[0];//将最小数与第一大数对换
number[0]=*min;
*min=temp;
if(max=number)//如果第一个数刚好等于最大数(这里怎么用了赋值号,不是应该是等于号吗。指针也允许这样比较??)
{
max=min;//则使max仍指向该最大数(这样如何能使max指向该最大数??)
}
temp=number[9];//将最小数与第一数交换
number[9]=*max;
*max=temp;
}
void output(int number[])
{
int *p;
printf("Now,they are:");
for(p=number;p<number+9;p++)
{
printf("%d",*p);
}
printf("\n");
}
int main(int argc, char* argv[])
{
int number[10];
intput(number);
max_min_value(number);
output(number);
return 0;
}
大家看看,是不是谭老解错了,谢谢!