Had to add one letter in the source to get this to work:
#+begin_src C :results output
puts("[1] 2 3 3");
#+end_src
#+RESULTS:
: [1] 2 3 3
Here's the patch:
Modified lisp/ob-C.el
diff --git a/lisp/ob-C.el b/lisp/ob-C.el
index e9eec93..c35b3d0 100644
--- a/lisp/ob-C.el
+++ b/lisp/ob-C.el
@@ -106,7 +106,7 @@ or `org-babel-execute:C++'."
((lambda (results)
(org-babel-reassemble-table
(org-babel-result-cond (cdr (assoc :result-params params))
- (org-babel-read results)
+ (org-babel-read results t)
(let ((tmp-file (org-babel-temp-file "c-")))
(with-temp-file tmp-file (insert results))
(org-babel-import-elisp-from-file tmp-file)))
I've sent a patch to the mailing list as well.