int do_sum(TreeNode *root, int cur_sum) { if(!root) return 0; cur_sum = cur_sum * 10 + root->val; if(!root->left && !root->right) return cur_sum; return do_sum(root->left, cur_sum) + do_sum(root->right, cur_sum); }
int main(int argc, char *const argv[]) { int ret = EXIT_SUCCESS; unsigned int err; unsigned int n; double *ary; if (argc < 2) usage(); err = read_number_of_values(stdin, &n); if (err) return EXIT_SUCCESS; ary = malloc(n * sizeof(*ary)); if (!ary) { perror("malloc failed"); goto out; } err = read_doubles(stdin, ary, n); if (err) goto out; err = do_sum(stdout, argv[1], ary, n); if (err) goto out; out: if (ary) free(ary); return ret; }
int main(int argv, char **args) { int k = do_sum(10, 20); printf("output: %d\n", k); return 0; }
static void server_callback (SoupServer *server, SoupMessage *msg, const char *path, GHashTable *query, SoupClientContext *context, gpointer data) { char *method_name; SoupXMLRPCParams *params; GError *error = NULL; if (msg->method != SOUP_METHOD_POST) { soup_message_set_status (msg, SOUP_STATUS_NOT_IMPLEMENTED); return; } soup_message_set_status (msg, SOUP_STATUS_OK); method_name = soup_xmlrpc_parse_request (msg->request_body->data, msg->request_body->length, ¶ms, &error); if (!method_name) { soup_xmlrpc_message_set_fault (msg, SOUP_XMLRPC_FAULT_PARSE_ERROR_NOT_WELL_FORMED, "Could not parse method call: %s", error->message); g_clear_error (&error); return; } if (!strcmp (method_name, "sum")) do_sum (msg, params); else if (!strcmp (method_name, "countBools")) do_countBools (msg, params); else if (!strcmp (method_name, "md5sum")) do_md5sum (msg, params); else if (!strcmp (method_name, "dateChange")) do_dateChange (msg, params); else if (!strcmp (method_name, "echo")) do_echo (msg, params); else if (!strcmp (method_name, "ping")) do_ping (msg, params); else { soup_xmlrpc_message_set_fault (msg, SOUP_XMLRPC_FAULT_SERVER_ERROR_REQUESTED_METHOD_NOT_FOUND, "Unknown method %s", method_name); } g_free (method_name); soup_xmlrpc_params_free (params); }
int process(unsigned nframes, void *v) { (void) v; float seq_sqr[nframes]; float seq_noise[nframes]; float sqr[nframes]; float noise[nframes]; float lfo_f_out[nframes]; float filter_in[nframes]; float *output = (float*) jack_port_get_buffer(port, nframes); void *josc_buf = jack_port_get_buffer(josc, nframes); jack_midi_event_t in_event; jack_nframes_t event_count = jack_midi_get_event_count(josc_buf); // tag::buf-read[] if(event_count) { for(unsigned i=0; i<event_count; i++) { jack_midi_event_get(&in_event, josc_buf, i); assert(*in_event.buffer == '/'); RtDataImpl d; ports.dispatch((char*)in_event.buffer+1, d); } } while(uToB.hasNext()) { RtDataImpl d; d.matches = 0; ports.dispatch(uToB.read()+1, d); if(d.matches == 0) fprintf(stderr, "Unknown Port '%s'\n", uToB.peak()); } // end::buf-read gen_seq(seq_sqr, seq_noise, &seq, nframes); gen_noise(noise, seq_noise, nframes); gen_square(sqr, seq_sqr, &osc, nframes); gen_lfo(lfo_f_out, &lfo, nframes); do_sum(filter_in, noise, sqr, nframes); do_filter(output, filter_in, lfo_f_out, &filter, nframes); return 0; }
int sumNumbers(TreeNode *root) { return do_sum(root, 0); }