4124人加入学习
(13人评价)
C++编程系列 第二季函数和类

制作于2018.4.2

价格 免费

习题3

完成程序:射击分数显示

要求:

1.要求用户输入最多10个射击分数,并将它们存储在一个数组中。

2.输入负数提前完成输入。

3.使用3个数组处理函数分别进行输入、显示和计算平均分数的操作。

4.显示所有分数和平均分数。

 

//老师代码:

#include <iostream>

using namespace std;

int fill_scores(int arr[], const int n);
void print_scores(int arr[], int n);
float average(int arr[], int n);

int main()
{
	const int maxSize = 10;
	int scores[maxSize] = {};
	//调用函数,填充数组并得到数组的元素的个数
	int size = fill_scores(scores, maxSize);
	print_scores(scores, size);
	float ave = average(scores, size);
	cout << "平均分数为:" << ave;
	return 0;
}

int fill_scores(int arr[], const int n)
{
	int temp;
	int i = 0;
	cout << "请输入最多10个射击成绩(输入负数则提前结束输入):" << endl;
	//1,判断输入的数字的个数是否小于等于10个
	while (i < n)
	{
		cin >> temp;
		//判断数据是否大于0,大于0的话,继续接受,小于0的话,停止接收
		if (temp >= 0)
		{
			arr[i] = temp;
			i++;
		}
		else
		{
			break;
		}
	}
	if (i == 9)
	{
		cout << "已输入10个分数。" << endl;
	}
	//将输入的数字的个数返还
	return i;
}

void print_scores(int arr[], int n)
{
	for (int i = 0; i < n; i++)
	{
		cout <<"分数"<< i + 1 << ":" << arr[i] << endl;
	}
}

float average(int arr[], int n)
{
	float res = 0;
	for (int i = 0; i < n; i++)
	{
		res += arr[i];
	}
	return res / n;
}

//自写代码

#include <iostream>

using namespace std;
void InputShootScore(int arr[], int size, int&inputRightNum);
void PrintShootScore(const int arr[], int inputRightNum);
float CalculateShootAverageScore(const int arr[], int inputRightNum);

int main()
{
	const int size = 10;
	int inputRightNum = 0;
	int arr[size] = {};
	cout << "请输入最多10个射击成绩(输入负数提前结束输入):" << endl;
	InputShootScore(arr, size,inputRightNum);
	cout << "射击分数为:" << endl;
	PrintShootScore(arr, inputRightNum);
	cout<<"平均分数为:"<<CalculateShootAverageScore(arr, inputRightNum);

	return 0;
}

void InputShootScore(int arr[],int size,int&inputRightNum)
{
	int temp;
	inputRightNum = 0;
	for (int i = 0; i < size; i++)
	{
		cin >> temp;
		if (temp < 0)
		{
			break;
		}
		arr[i] = temp;
		inputRightNum++;
	}
}

void PrintShootScore(const int arr[], int inputRightNum)
{
	for (int i = 0; i < inputRightNum; i++)
	{
		cout << "分数" << (i + 1) << ":" << arr[i] << endl;
	}
}

float CalculateShootAverageScore(const int arr[], int inputRightNum)
{
	int totalScore = 0;
	for (int i = 0; i < inputRightNum; i++)
	{
		totalScore += arr[i];
	}
	return float(totalScore) / inputRightNum;
}

 

[展开全文]

授课教师

SIKI学院老师

课程特色

下载资料(1)
视频(43)