第1个回答 2008-04-03
s1=MIN(a=b,b-a):a=b=3,b-a=3-3=0,则S1=MIN(3,0);其中3>0,所以S1=3;输出a和b,即输出3,3.
s2=T(a++,a*++b,a+b+c)中,此指令开始时b=b+1=4;指令执行完后a再加1;即s2=T(3,12,12)=3*12*12/4=144;此条指令执行后,a=a+1=4.
printf("%d,%d,%d\n",a,b,c)表示输出a,b,c即4,4,5
printf("%d,%d",s1,s2); 表示输出s1,s2 即3,144
第2个回答 2008-04-03
#define MIN(x,y) (x)>(y)?(x):(y)
#define T(x,y,r) x*r*y/4
main()
{
int a=1,b=3,c=5,s1,s2;
clrscr();
s1=MIN(a=b,b-a); // a=3,b=3, s1=3
printf("%d,%d",a,b);
s2=T(a++,a*++b,a+b+c); //a=4 b=4 c=5 3*12*12/4
printf("%d,%d,%d\n",a,b,c); //a=2,b=4,c=5
printf("%d,%d",s1,s2);
}
s2怎么算不知道 怎么都想不出来~
第3个回答 2008-04-08
#define MIN(x,y) (x)>(y)?(x):(y)
#define T(x,y,r) x*r*y/4
main()
{
int a=1,b=3,c=5,s1,s2;
clrscr();
s1=MIN(a=b,b-a);
//s1=(a=b)>(b-a)?(a=b):(b-a); a=3,b=3,c=5
//s1=3>0?3:0;
//s1=3;
printf("%d,%d",a,b);
s2=T(a++,a*++b,a+b+c);
// s2=a++*a+b+c*a*++b/4; a=3,b=4,c=5
// s2=3*3+4+5*3*4/4
// s2=9+4+15=28;
printf("%d,%d,%d\n",a,b,c);
printf("%d,%d",s1,s2);
}本回答被提问者采纳
第4个回答 2008-04-08
#define MIN(x,y) (x)>(y)?(x):(y)
写错了吧?