Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-

C: sum two integers

Name: Anonymous 2010-12-25 13:53


#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>
#include <gmp.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
 enum
 {
  BASE = 10,
  N_ARGS = 3,
  ZERO = 0,
  UNO = 1,
  DOS = 2
 };

 auto mpz_t x;
 auto mpz_t y;
 auto bool ret_val;

 ret_val = true;

 if (argc != N_ARGS)
 {
  ret_val = false;
  goto BYE;
 }

 mpz_init(x);
 mpz_init(y);

 if (mpz_set_str(x, argv[UNO], BASE) != ZERO || mpz_set_str(y, argv[DOS], BASE) != ZERO)
 {
  ret_val = false;
  goto CLEAN;
 }

 mpz_add(x, x, y);

 if (mpz_out_str(NULL, BASE, x) == ZERO || printf("\n") <= ZERO)
  ret_val = false;

 CLEAN:
 mpz_clear(x);
 mpz_clear(y);

 BYE:
 return (!ret_val) ? EXIT_FAILURE : EXIT_SUCCESS;
}

Name: Anonymous 2010-12-25 13:58

This would be much easier in Java.

Name: Anonymous 2010-12-25 14:00

Uno and DOS?  Back to the 80s, please.

Name: Anonymous 2010-12-25 14:02

>>3

no hablan castellano?

Name: Anonymous 2010-12-25 14:54

If you tried to explain your problem it'd help.

>>4
No pibe, aca no se habla castellano. Escribí en inglés o andate.
PD: Tampoco sabés catellano, cero se escribe con c, de casa.

Name: Anonymous 2010-12-25 20:05

>>4
U MENA Ya pará un poco, nené..

Name: Anonymous 2010-12-25 20:22

>>3
I prefer EINE Is Not Editor MACroS and ZWEI Was EINE Is Not Editor MACroS, Initially.

Name: Anonymous 2010-12-26 3:17

>>5
There is no problem.

Name: Anonymous 2010-12-26 6:31

Holy shit, this is the safest code I have ever seen in C.
It's just like Java!

Name: Anonymous 2010-12-26 18:13


#include <stdlib.h>
#include <stdio.h>

typedef struct brainfuck_type
{
  unsigned char *array;
  unsigned char *p;
} brainfuck_t;

brainfuck_t *new_brainfuck(int n
{
  brainfuck_t *bf = (brainfuck_t *)malloc(sizeof(brainfuck_t));
  bf->array = (unsigned char *)malloc(sizeof(unsigned char) * n);
  bf->p = bf->array;
  return bf;
}

void free_brainfuck(brainfuck_t *bf)
{
  free(bf->array);
  free(bf);
}

void brainfuck_op(brainfuck_t *bf, char op)
{
  switch(op)
  {
  case '+': *(bf->p) = *(bf->p) + 1; break;
  case '-': *(bf->p) = *(bf->p) - 1; break;
  case '>': bf->p = bf->p + 1; break;
  case '<': bf->p = bf->p - 1; break;
  case '.': printf("%d", *(bf->p)); break;
  }
}

int main(int argc, char **argv)
{
  int a = atoi(argv[1]);
  int b = atoi(argv[2]);

  brainfuck_t *bf = new_brainfuck(30000);
 
  while (a)
  {
    a--;
    brainfuck_op(bf, '+');
  }
  brainfuck_op(bf, '>');
  while (b)
  {
    b--;
    brainfuck_op(bf, '+');
  }
  brainfuck_op(bf, '<');
 
  while (*(bf->p))
  {
    brainfuck_op(bf, '-');
    brainfuck_op(bf, '>');
    brainfuck_op(bf, '>');
    brainfuck_op(bf, '+');
    brainfuck_op(bf, '>');
    brainfuck_op(bf, '+');
    brainfuck_op(bf, '<');
    brainfuck_op(bf, '<');
    brainfuck_op(bf, '<');
  }
  brainfuck_op(bf, '>');
  brainfuck_op(bf, '>');
  brainfuck_op(bf, '>');
  while (*(bf->p))
  {
    brainfuck_op(bf, '-');
    brainfuck_op(bf, '<');
    brainfuck_op(bf, '<');
    brainfuck_op(bf, '<');
    brainfuck_op(bf, '+');
    brainfuck_op(bf, '>');
    brainfuck_op(bf, '>');
    brainfuck_op(bf, '>');
  }
  brainfuck_op(bf, '<');
  brainfuck_op(bf, '<');
  while (*(bf->p))
  {
    brainfuck_op(bf, '-');
    brainfuck_op(bf, '>');
    brainfuck_op(bf, '+');
    brainfuck_op(bf, '>');
    brainfuck_op(bf, '+');
    brainfuck_op(bf, '<');
    brainfuck_op(bf, '<');
  }
  brainfuck_op(bf, '>');
  brainfuck_op(bf, '>');
  while (*(bf->p))
  {
    brainfuck_op(bf, '-');
    brainfuck_op(bf, '<');
    brainfuck_op(bf, '<');
    brainfuck_op(bf, '+');
    brainfuck_op(bf, '>');
    brainfuck_op(bf, '>');
  }
  brainfuck_op(bf, '<');
  brainfuck_op(bf, '<');
  brainfuck_op(bf, '<');
  printf("The sum of ");
  brainfuck_op(bf, '.');
  brainfuck_op(bf, '>');
  printf(" and ");
  brainfuck_op(bf, '.');
  brainfuck_op(bf, '>');
  printf(" is ");
  brainfuck_op(bf, '.');
  printf("\n");


  free_brainfuck(bf);

  return 0;
}

Name: Anonymous 2010-12-26 18:33

>>10
Congratulations, you implemented the part of a brainfuck compiler that even my mother would be able to code.

Now do brainfuck_t *bf = new_brainfuck(3000); eval_brainfuck(",[.,]");

Name: Anonymous 2010-12-26 18:40

>>11
That's not funny, my brother died that way.

Name: Anonymous 2010-12-26 18:46

>>12
I feel for you, bro. My family died in a cdr accident ;_;.

Name: Anonymous 2010-12-26 21:37

Name: Anonymous 2010-12-27 11:13

>>10

  int a = atoi(argv[1]);
  int b = atoi(argv[2]);


You're doing it wrong.

Name: Anonymous 2011-02-03 0:17

Name: Anonymous 2011-02-04 17:11

Don't change these.
Name: Email:
Entire Thread Thread List