Path: ...!weretis.net!feeder9.news.weretis.net!news.quux.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: Tim Rentsch Newsgroups: comp.lang.c Subject: Re: Suggested method for returning a string from a C program? Date: Tue, 18 Mar 2025 20:07:08 -0700 Organization: A noiseless patient Spider Lines: 57 Message-ID: <868qp1ra5f.fsf@linuxsc.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Date: Wed, 19 Mar 2025 04:07:24 +0100 (CET) Injection-Info: dont-email.me; posting-host="f38801bdea7b04066d3e2a5989bc7bcf"; logging-data="4074846"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18CBvoHsyp1yoxxGl661H+PY8Gjf4omqSc=" User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux) Cancel-Lock: sha1:W5RJ2E0X89PI7mtpQAeWNtAAwuU= sha1:2vNytc6BRVYX5bP87XFso2Qo7mk= Bytes: 2447 DFS writes: > I'm doing these algorithm problems at > https://cses.fi/problemset/list/ > > For instance: Weird Algorithm > https://cses.fi/problemset/task/1068 > > My code works fine locally (prints the correct solution to the > console), but when I submit the .c file the auto-tester flags it with > runtime error' and says the output is empty. > > ------------------------------------------------------------ > // If n is even, divide it by two. > // If n is odd, multiply it by three and add one. > // Repeat until n is one. > // n = 3: output is 3 10 5 16 8 4 2 1 > > > #include > #include > #include > > int main(int argc, char *argv[]) > { > int n = atoi(argv[1]); > int len = 0; > char result[10000] = ""; > sprintf(result, "%d ", n); > > while(1) { > if((n % 2) == 0) > {n /= 2;} > else > {n = (n * 3) + 1;} > > if(n != 1) > { > len = strlen(result); > sprintf(result + len, "%d ", n); > } > else > break; > } > > len = strlen(result); > sprintf(result + len, "1 "); > printf("%s\n",result); > > return 0; > } > ------------------------------------------------------------ > > Any ideas? Have you thought about how large the value of 'n' can become inside the while() loop?