题目
原题
求平均年龄
老九学堂有老师若干名, 给出每个老师的年龄, 求老九学堂所有老师的平均年龄, 保留小数点后两位
输入:
第一行: 整数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);
}
部分运行结果