Java - 666 characters
Has also oneliners, luckily we have Eclipse and Netbeans automatic code-format! :-) Also implemented parenthesis (but also contains trivial ops)?
public class CodeGolf{static String[]o={"+","-","/","*"};static void p(N a,int b,N c,int d,N e,int i){System.out.printf("%s%s(%s%s%s) = %s\n",a,o[b],c,o[d],e,new N(a,b,new N(c,d,e)));}public static void main(String[]v){N[]n={new N(v[0]),new N(v[1]),new N(v[2])};for(int i=0,j=0,k=0,l=0,m=0;m<3;i++,j+=i==4?1:0,i%=4,k+=j==4?1:0,j%=4,l+=k==3?1:0,k%=3,m+=l==3?1:0,l%=3){p(n[k],i,n[l],j,n[m],0);}}static class N{Double v;N(String s){v=v.parseDouble(s);}N(N a,int o,N b){if(a.v==null||b.v==null)return;double x=b.v, y=a.v; switch(o){case 0:x=-x;case 1:v=y-x;return;case 3:v=y*x;x=0;case 2:if(x!=0)v=y/x;}}public String toString(){return v!=null?""+Math.round(v):"NaN";}}}
Expanded, formatted, version with comments:
public class CodeGolf {
// operators
static String[] o = {"+", "-", "/", "*"};
// print
static void p(N a, int b, N c, int d, N e, int i) {
System.out.printf("%s%s(%s%s%s) = %s\n", a, o[b], c, o[d], e,
new N(a, b, new N(c, d, e))); // calculate
}
public static void main(String[] v) {
N[] n = {new N(v[0]), new N(v[1]), new N(v[2])};
// Nested for-loops? Nah, too much code!
// Conditional operator, modulus is way cooler.
for (int i = 0, j = 0,
k = 0, l = 0, m = 0; m < 3; i++,
j += i == 4 ? 1 : 0,
i %= 4,
k += j == 4 ? 1 : 0,
j %= 4,
l += k == 3 ? 1 : 0,
k %= 3,
m += l == 3 ? 1 : 0,
l %= 3) {
p(n[k], i, n[l], j, n[m], 0);
}
}
// number wrapper
static class N {
Double v;
// parse input
N(String s) {
v = v.parseDouble(s);
}
// calculate input
N(N a, int o, N b) {
// NaN's should fall through
if (a.v == null || b.v == null) {
return;
}
double x = b.v, y = a.v;
// operator execution
switch (o) {
case 0:
x = -x;
// fall through; y + x = y - (-x)
case 1:
v = y - x;
return; // break would make it 665 characters, not as cool
case 3:
v = y * x;
x = 0;
// fall through; no return needed
case 2:
if (x != 0) {
v = y / x;
}
// will NaN because v = null if x = 0
}
}
// rounding and NaN
public String toString() {
return v != null ? "" + Math.round(v) : "NaN";
}
}
}
Iterate on both operators (4 * 4) and permute on operands, twice (3! * 2) makes (4 * 4 * 3 * 2 * 2 = 192 possiblities).
+/- 2.5 hours :-) Enjoy!