看程序写结果:
#include<stdio.h>
int main()
{
int i, p[5], a, b, c, x, y = 20;
for ( i = 0; i <= 4; i++ )
scanf( "%d", &p[i] );
a = (p[0] + p[1]) + (p[2] + p[3] + p[4]) / 7;
b = p[0] + p[1] / ( (p[2] + p[3]) / p[4]);
c = p[0] * p[1] / p[2];
x = a + b - p[(p[3] + 3) % 4];
if ( x > 10 )
y += (b * 100 - a) / (p[p[4] % 3] * 5);
else
y += 20 + (b * 100 - c) / (p[p[4] % 3] * 5);
printf( "%d,%d\n", x, y );
return(0);
}
//注:本例中,给定的输入数据可以避免分母为 0 或数组元素下标越界。输入:6 6 5 5 3
看到整数除法 → 先想截断;看到 p[p[4]%3] → 先算内层下标
易把 13/7 算成 1.85 或误判下标 p[p[4]%3] 指向 p[3]
考点:整数除法截断|数组嵌套下标
输入 5 个整数存入数组 p,按特定公式计算 a、b、c、x,根据 x 大小分支更新 y,最后输出 x 和 y。