NO.14【婳骨】の年龄录入程序

题目

原题

求平均年龄
老九学堂有老师若干名, 给出每个老师的年龄, 求老九学堂所有老师的平均年龄, 保留小数点后两位
输入:
第一行: 整数n(1<n<100), 表示老师人数
之后n行: 每行一个整数a(15<a<55), 表示第n个老师的年龄
输出:
一个浮点数, 保留两位小数. 表示全体老师的平均年龄
样例输入:
3
18
18
17
样例输出:
17.67

开题

	输入人数(2-99的整数)
	输入年龄(16-54的整数)
	每输入一个换一行
	最后输出个平均年龄(两位小数)

代码

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:4996)

void In(double* a);
int main()
{
	double member;	//人数
	int member1;	//整数人数
	int i;			//用于循环输入年龄
	double age;		//年龄
	int age1;		//整数年龄
	double average;	//平均年龄
	int choice;		//选择
	system("title 【婳骨】の老九年龄录入程序");
	while (1)
	{
		double num = 0;		//年龄总和
		system("title 【婳骨】の年龄录入程序");
		while (1)
		{
			printf("**************************************\n");
			printf("* 欢迎来到【婳骨】の老九年龄录入程序 *\n");
			printf("**************************************\n");
			printf("请输入总人数(2~99的整数):\n");
			In(&member);
			if (member < 2 || member > 99)	//判断输入人数是否满足条件
			{
				printf("输入的不符合范围哦,请重新输入\n");
				Sleep(1500);
				system("cls");
			}
			else break;
		}
		member1 = (int)member;
		printf("您这里有%d个人呢~\n", member1);
		Sleep(1500);
		system("cls");
		for (i = 0; i < member1; i++)
		{
			printf("**************************************\t\t*****************************************************\n");
			printf("* 欢迎来到【婳骨】の老九年龄录入程序 *\t\t* 总人数:%-3d已录入:%-3d未录入:%-3d当前总年龄:%-5.0lf* \n", member1, i, member1 - i, num);
			printf("**************************************\t\t*****************************************************\n");
			printf("请输入第%d个人的年龄(16~54的整数,忽略小数哦):", i + 1);
			while (1)
			{
				In(&age);
				if (age < 16 || age > 54)	//判断输入人数是否满足条件
				{
					printf("不会吧不会吧?不会真的有人不在这个年龄段吧!\n");
				}
				else break;
			}
			age1 = (int)age;
			num += age1;
			printf("\t现在年龄总和为:%.0lf\n", num);
			Sleep(1500);
			system("cls");
		}
		average = num / member1;
		printf("**************************************\t\t*****************************************************\n");
		printf("* 欢迎来到【婳骨】の老九年龄录入程序 *\t\t* 总人数:%-3d已录入:%-3d未录入:%-3d当前总年龄:%-5.0lf* \n", member1, i, member1 - i, num);
		printf("**************************************\t\t*****************************************************\n");
		printf("老九学堂这%d位老师的平均年龄是:%.2lf岁\n", member1, average);
		Sleep(1500);
		printf("是否退出程序,如需退出请按0,否则按任意键重新开始\n");
		choice = getch();
		if (choice == '0')
		{
			printf("退出程序~谢谢使用!\n");
			Sleep(1500);
			exit(0);
		}
		Sleep(1500);
		system("cls");
	}
	system("pause");
	return 0;
}

void In(double* a)	//对输入数据进行判断
{
	do
	{
		if (scanf_s("%lf", a) == 1)
		{
			break;
		}
		char choice;
		while ((choice = getchar()) != '\n' && choice != EOF);
		printf("输入的不是数字!\n");
	} while (scanf_s("%lf", a) != 1);
}

部分运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值