Cod sursa(job #2089777)

Utilizator YusyBossFares Yusuf YusyBoss Data 17 decembrie 2017 09:57:47
Problema A+B Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <cstdio>

int a[100], b[100], c[100];

void Adunare(int a[], int n, int b[], int m, int &k) {
  int i, r = 0, x;
  for (i = 1; i <= n || i <= m; i++) {
    x = a[i] + b[i] + r;
    if (x > 9) {
      r = 1;
      x -= 10;
    }
    else
      r = 0;
    c[i] = x;
    k++;
  }
  if (r == 1)
    c[++k] = 1;
}

int main() {
  FILE *fin, *fout;
  fin = fopen ("adunare.in", "r");
  fout = fopen ("adunare.out", "w");
  char ch;
  int n = 0, m = 0, max1, i, k;
  ch = fgetc(fin);
  if (n > m)
    k = n;
  else
    k = m;
  while (ch >= '0' && ch <= '9') {
    n++;
    a[n] = ch - '0';
    ch = fgetc(fin);
  }
  ch = fgetc(fin);
  while (ch >= '0' && ch <= '9') {
    m++;
    b[m] = ch - '0';
    ch = fgetc(fin);
  }
  Adunare(a, n, b, m, k);
  for (i = k; i >= 1; i--) {
    fprintf(fout, "%d", c[i]);
  }
  return 0;
}