如果结果为负怎么处理?
程序代码:
#include <stdio.h>
int foo( int x, int y, char opt )
{
switch( opt )
{
case '+': return x+y;
case '-': return x-y;
case '*': return x*y;
}
return 0;
}
int bar( int x, char radix )
{
if( x < 0 )
{
putchar( '-' );
x = -x;
}
switch( radix )
{
case 'O': return printf( "%#o", x );
case 'D': return printf( "%d", x );
case 'H': return printf( "%#X", x );
}
return 0;
}
int main( void )
{
int a, b, c;
char d1, d2;
char e1, e2, e3, e4;
scanf( "%d%d%d %c %c %c %c %c %c", &a,&b,&c, &d1,&d2, &e1,&e2,&e3,&e4 );
int result;
if( d2 == '*' )
result = foo( a, foo(b,c,d2), d1 );
else
result = foo( foo(a,b,d1), c, d2 );
bar( a, e1 );
putchar( d1 );
bar( b, e2 );
putchar( d2 );
bar( c, e3 );
putchar( '=' );
bar( result, e4 );
}