代码如下:
#include "stdafx.h"
#include "stdio.h"
int u,v;
find_u_v (int *p,int n)
{
int *q;
u=v=*p;
for(q=p;q
{if(u<*q) u=*q;
else if(v>*q) v=*q;
}
}
int main(int argc, char* argv[])
{ int i,num[10];
printf("intput 10 numbers\n");
for(i=0;i<10;i++)
scanf("%d",&num[i]);
find_u_v(num,10);
printf("\n\n u=%d;v=%d\n",u,v);
}
扩展资料
指针是编程语言中的一个对象,利用地址,它的值直接指向存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。
意思是通过它能找到以它为地址的内存单元。在高级语言中,指针有效地取代了在低级语言,如汇编语言与机器码,直接使用通用暂存器的地方,但它可能只适用于合法地址之中。指针参考了存储器中某个地址,通过被称为反参考指针的动作,可以取出在那个地址中存储的值。
作个比喻,假设将电脑存储器当成一本书,一张内容记录了某个页码加上行号的便利贴,可以被当成是一个指向特定页面的指针;根据便利粘贴面的页码与行号,翻到那个页面,把那个页面的那一行文字读出来,就相当于是对这个指针进行反参考的动作。
//---------------------------------------------------------------------------
#include
int main(int argc, char* argv[])
{ int a[10];
int *mi,*ma,i;
mi=ma=a;
for (i = 0; i < 10; i++) { //对数组进行赋值
a[i]=i+1;
}
for (i = 0; i < 10; i++) { //找极值
if (*mi>a[i]) { //极小值
mi=&a[i];
}
if (*ma ma=&a[i];
}
}
printf("MAX=%d\nMIN=%d\n",*ma,*mi); //输出极值
return 0;
}
//---------------------------------------------------------------------------
这个题和这个列子一样:
从10个数中找出其中最大的和最小的.
不要求改变数组元素的值,只要求的最大和最小值.但是调用一个函数只能得到一个返回值,为了能得到两个结果值.用全局变量在函数之间传递数据.
程序如下:
int max,min;
void max_value(int array[].int n)
{int*p,*array_end;
array_end=array+n;
max=min= * array;
for(p=array+1;p
else if(*p
}
main()
{int i,number[10];
printf("enter 10 integer numberd:\n");
for(i=0;i<10;i++)
scanf("%d",&number[i]);
max_min_value(number,10);
printf(;\nmax=%d,min=%d\n",max,min);
}
试试......