题目描述
计算导论与程序设计课程要开习题课,由于教室座位有限,所以决定限制参加人数。于是规定:1、最多允许一半的班级里的同学参加;2、可以参加的班级最多允许一半的同学参加。现请你写一段程序来计算习题课最多可能有多少个学生参加。
输入为两行,第一行为一个整数n(0<n<100),代表班级的个数,第二行为n个正整数,分别代表每个班级的人数。
输出只有一行,为能够参加习题课的人数的最大值。(当数字为奇数时,一半指的是该数减一后除以2,测试用例保证所有整数可以用 int 类型存储)
#include <stdio.h>
int main(void)
{
int a[100];
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
int b[50],c[50];
for(int i=0;i<n/2;i++)
{
int max=0;
for(int q=0;q<n;q++)
{
if(a[q]>max)
{max=a[q];
b[i]=q;c[i]=max;}
}
a[b[i]]=0;
}int t=0;
for(int i=0;i<n/2;i++)
{
t=t+c[i]/2;
}
printf("%d",t);
return 0;
}