实验七 指针

实验七 指针

一、从键盘输入若干数据整数(零表示结束),统计出数据个数,以及最大值、最小值和平均值。
用一个函数实现数据输入的功能,其首部为:
int input(int s[])
input的参数为输入的数据,函数返回值大于0表示该行输入的数据个数,0表示输入结束。
用一个函数实现求最大值、最小值和平均值的功能,首部为:
void statistics(int n, int s[], int *max, int *min, float *avg)

1 2 3 4 5 0
Max=5
Min=1
Avg=3.000

注意要点:
1.在自定义函数中使用指针,需要在main函数中先赋初始地址。
2.指针从main中带进函数的只有地址。

例:以下是在自定义函数中,min在主函数中已有指向地址。

if(s[i]<*min) *min=s[i];

↑可行。

if(s[i]<*min) min=&s[i];

↑不可以。
3.尽量不要使两个指针的初始地址一致,否则在同时应用这两个指针时数据会乱。

#include
#include
using namespace std;
int main()
{
	int input(int s[]);
	void statistics(int n,int s[],int *max,int *min,float *avg);
	int n,s[10],*p=s,c=1,d=1;
	int *max=&c,*min=&d;
	n=input(s);
	float a=1;
	float *avg=&a;
	statistics(n,s,max,min,avg);
	cout<<"Max="<<*max<>*(p+i);
		if(*(p+i)==0) break;
		n=n+1;
	}
	return n;
}

void statistics(int n,int s[],int *max,int *min,float *avg)
{
	int sum=s[0];
	for(int i=1;i*max) *max=s[i];
		sum=sum+s[i];
	}
	*avg=sum/n;
}


二、编写一个函数,该函数的参数为是年、月、日的指针,函数返回值是该时间是该年份中的第几天。

长得跟HDU 2005差不多,只是要用指针做。

#include
using namespace std;
int main()
{
	int year,month,day;
	int *y=&year,*m=&month,*d=&day;
	cin>>year>>month>>day;
	int a(int *y,int *m,int *d);
	cout<

你可能感兴趣的:(程序设计基础实验)