当前位置:编程学习 > C/C++ >>

C语言指针题目

补充:从键盘输入若干数据整数(零表示结束),统计出数据个数,以及最大值、最小值和平均值。 用一个函数实现数据输入的功能,其首部为: 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
答案:#include "stdio.h"
int input(int s[])
{
	int i;
	printf("请输入数据:\n");
	for(i=0;;i++)
	{
		scanf("%d",&s[i]);
		if(s[i]==0)
			break;
	}
	return(i);
}
void statistics(int n, int s[], int *max, int *min, float *avg)
{
	int i;
	float agg=0;
	*max=s[0];
	*min=s[0];
	for(i=0;i<n;i++)
	{
		if(*max<s[i])
		*max=s[i];
		if(*min>s[i])
			*min=s[i];
		sum+=s[i];
	
		*avg=sum/n;

	}

}
void main()
{
	int s[100],n,max,min;
	float avg;
	n=input(s);
	statistics(n,s,&max,&min,&avg);
	printf("最大数为:%d\n最小数为:%d\n平均数为:%f\n",max,min,avg);
}
其他:把问题说出来 第二,func中应当对指针参数的合法性进行判断,避免非法调用。 写错了 #include #include<iostream>
using namespace std;
int main()
{
	int  input(int s[]) ;
	void statistics( int s[], int *max, int *min, float *avg);
	int *max,*min,*avg,n;
	int s[100];
	cin>>n;
	input(s);
	statistics(n,s[],max, min, avg);
	return 0;
} 
int  input(int s[])  
{
	int i=0,m;
	while(1)
	{
		scanf("%d",&m);
		if(m=0)
			break;
		else
			s[i]=m;
		i++
	}
}
void statistics( int s[], int *max, int *min, float *avg)
{
	int sum;
	for(i=0;s[i]!=0;i++)
	{
		sum+=s[i];
	}
	*avg=sum/n;
	for(max=s;s[i]!=0;i++)
	{
		if(*max<s[i])
		{
			*max=s[i];
		}
		else
			continue;
	}
	for(min=s;s[i]!=0;i++)
	{
		if(*min>s[i])
		{
			*min=s[i];
		}
		else
			continue;
	}

}

上一个:求解几道c语言题,求教高手
下一个:求2011全国计算机二级C语言考试的 《南开100题》公共基础知识和机试试题。

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,