#include <stdio.h>
#include <math.h>
#include <string.h>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n, ans;
int a[1000];
while(~scanf("%d", &n) && n)
{
ans = 0;
memset(a, 0, sizeof(a));
for(int i = 0; i < n; i++)
scanf("%d", &a[i]);
sort(a, a + n);
for(int i = 0; i <= n / 2; i++)
ans += a[i] / 2 + 1;
printf("%d\n", ans);
}
return 0;
#include <math.h>
#include <string.h>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n, ans;
int a[1000];
while(~scanf("%d", &n) && n)
{
ans = 0;
memset(a, 0, sizeof(a));
for(int i = 0; i < n; i++)
scanf("%d", &a[i]);
sort(a, a + n);
for(int i = 0; i <= n / 2; i++)
ans += a[i] / 2 + 1;
printf("%d\n", ans);
}
return 0;
}
错误:
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n, ans;
double a[1000];
while(~scanf("%d", &n) && n)
{
ans = 0;
memset(a, 0, sizeof(a));
for(int i = 0; i < n; i++)
scanf("%lf", &a[i]);
sort(a, a + n);
n = ceil((double)n / 2.0);
for(int i = 0; i < n; i++)
ans += ceil(a[i] / 2.0);
printf("%d\n", ans);
}
return 0;
}
心得:本来想用ceil装个B的,结果怎么弄也不成,无非两个条件,都试过,这题好像本来就不能用ceil,求高人指点!!