| Deutsch English Français Italiano |
|
<868qp1ra5f.fsf@linuxsc.com> View for Bookmarking (what is this?) Look up another Usenet article |
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 <tr.17687@z991.linuxsc.com>
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: <vrd77d$3nvtf$2@dont-email.me>
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 <nospam@dfs.com> 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 <stdio.h>
> #include <stdlib.h>
> #include <string.h>
>
> 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?