先用数组写,再改成指针比较容易
----------------解决方案--------------------------------------------------------
先用数组写,再改成指针比较容易
呵呵,那写出来还有什么意思,又不是为了完成作业,
不是说指针是C语言中最重要的部分吗?
直接想出来爽一点呀,
----------------解决方案--------------------------------------------------------
输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:(1)输入10个数;(2)进行处理;(3)输出10个数。
这个题我用数组可以写出来,可要求用指针,我一用指针就乱了,哪位能写个程序来看看,谢谢了
[此贴子已经被作者于2006-9-2 12:42:15编辑过]
您自己先写,哪里不懂再问...
哪怕你不用指针写也行,写了毕竟是锻炼了。
因为写得太乱,发帖时没好意思发,呵呵,这是第二个函数,因为第一个和第三个比较简单
void sort(int array[10])
{
int *max,*min,*p;
max=min=array;
for(p=array;p<array+9;p++)
if(*p>=*max)
max=p;array[9]=*max;*p=array[9];
for(p=array;p<array+9;p++)
if(*p<=*min)
min=p;array[0]=*min;*p=array[0];
}
[此贴子已经被作者于2006-9-2 13:44:53编辑过]
void swap(int *a ,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
void sort(int array[])
{
int *max,*min,*p;
max=min=array;
for(p=array+1;p<array+10;p++)
{
if(*p>*max)
max=p;
if(*p<*min)
min=p;
}
swap(min,array);
swap(max,array+9);
}
刚看小说去了,呵呵。
您这指针用得有些乱了.{}少了,没事又交换数组那么多次...
嗨,你的程序看起来清楚多了,我怎么就没想到呢,呵呵
学习了,多谢,
#include<stdio.h>
#define N 50
void Input(int *a,int n)
{
int i;
for(i=0;i<n;i++)
{
scanf("%d",a+i);
}
}
void tiaohuan(int *a,int n)
{
int max=0,min=0,i,temp;
for(i=1;i<n;i++)
{
if(*(a+i)>*(a+max))
{
max=i;
}
if(*(a+i)<*(a+min))
{
min=i;
}
}
temp=*(a+min);
*(a+min)=*a;
*a=temp;
temp=*(a+max);
*(a+max)=*(a+n-1);
*(a+n-1)=temp;
}
void display(int *a,int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%-3d",*(a+i));
}
printf("\n");
}
int main()
{
int data[N],n;
printf("输入元素个数,不超过%d:",N);
scanf("%d",&n);
printf("输入%d个元素:",n);
Input(data,n);
tiaohuan(data,n);
printf("输出处理后的%d个元素:",n);
display(data,n);
return(0);
}