Deutsch   English   Français   Italiano  
<vrd77d$3nvtf$2@dont-email.me>

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: DFS <nospam@dfs.com>
Newsgroups: comp.lang.c
Subject: Suggested method for returning a string from a C program?
Date: Tue, 18 Mar 2025 21:38:55 -0400
Organization: A noiseless patient Spider
Lines: 54
Message-ID: <vrd77d$3nvtf$2@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 19 Mar 2025 02:38:54 +0100 (CET)
Injection-Info: dont-email.me; posting-host="92f16538b7b31d02767c6fdbe2b76261";
	logging-data="3932079"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX19L83te7UyKBpPBlUVpMzeK"
User-Agent: Betterbird (Windows)
Cancel-Lock: sha1:oyYYHZOaCaKnqS++cRschCsCO6c=
Content-Language: en-US
Bytes: 2277


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?
Thanks