题意
给一个N
表示接下来要操作的数字的个数
然后给出一串数字,按
A1
,
A2
,
A3
,
A4
,
A5
的要求分别算就好了。
分析
可以输入一个数计算一个,然后分别存到 A1 , A2 , A3 , A4 , A5 中去。
要注意如果 Ai 中存在没被用到的,则需做好记录。
代码
#include <cstdio>
int f[6]={ 0, 0, 0, 0, 0, 0 }; // 表示 Ai 内是否有数
double A[6]={ 0, 0, 0, 0, 0, 0 }; // 存放 Ai 结果
int main()
{
int N, n, t = 1, j = 0;
// t 为 A2 中数字前系数,+1 -1 +1 -1 ……
// j 为 A3 中数字的个数,方便求平均数
scanf( "%d", &N );
for( int i = 0; i < N; i++ ){
scanf( "%d", &n );
int y = n % 5;
if( n % 10 == 0 ){ // A1
A[1] += n;
f[1] = 1;
}
else if( y == 1 ){ // A2
A[2] += t * n;
t = -t;
f[2] = 1;
}
else if( y == 2 ){ // A3
A[3]++;
f[3] = 1;
}
else if( y == 3 ){ // A4
A[4] += n;
j++;
f[4] = 1;
}
else if( y == 4 ){ // A5
if( n > A[5] ){
A[5] = n;
}
f[5] = 1;
}
}
if( f[1] ) printf( "%.0lf", A[1] );
else printf( "N" );
if( f[2] ) printf( " %.0lf", A[2] );
else printf( " N" );
if( f[3] ) printf( " %.0lf", A[3] );
else printf( " N" );
if( j ) A[4] = A[4] / j;
if( f[4] ) printf( " %.1lf", A[4] );
else printf( " N" );
if( f[5] ) printf( " %.0lf\n", A[5] );
else printf( " N\n" );
return 0;
}
小结
注意一下细节部分就没有问题啦。