Sujet : Re: Suggested method for returning a string from a C program?
De : tr.17687 (at) *nospam* z991.linuxsc.com (Tim Rentsch)
Groupes : comp.lang.cDate : 19. Mar 2025, 04:07:08
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <868qp1ra5f.fsf@linuxsc.com>
References : 1
User-Agent : Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
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?