Addition

bonjour, je dois faire une addition qui gère les nombres infinie et où je ne dois utiliser que while , if, else if, else et pas de printf et pas de for et autre
merci de me répondre!:wink:

J’ai répondu.

Maintenant, pour le côté utile de la réponse, on repassera …

En quel langage, hein ? :slight_smile:
Et sur quoi tu bloques ?

en langage c et je bloque pour la retenue

C’est à dire ?

Tu as fait quoi ? Un tableau de char pour gérer tes nombres ? ou ?

bin regarde
#include <stdlib.h>

int my_putchar(char c)
{
write(1, &c, 1);
}

int my_putstr(char *str)
{
int c;

c = 0;
while (str[c] != ‘\0’)
{
my_putchar(str[c]);
c += 1;
}
}

int my_strlen(char *str)
{
int c;

c = 0;
while (str[c] != ‘\0’)
{
c = c + 1;
}
return ©;
}

int addi_inf(char *str1, char *str2)
{
int i;
char *result1;
char *result2;

i = 0;
while (str1[i] != ‘\0’ && str2[i] != ‘\0’)
{
/taille de la chaine de caractère moins 1
/taille de la chaine de caractère moins 1
result1 = str1[i] + str2[i];
my_pustr(result1);
if (result1 >= 10)
{
result2 = result1 % 10;
result2 + result1;
}
my_putstr(result1);
}
i = i - 1;
}

bon ma fonction addi_inf est merdique je sais il faut que change tout mais ça fait deux jours que je plante et j’en est marre:(

De ce que je vois, en fait tu appliques les fondamentaux de l’addition ou de la soustraction, en utilisant des char :slight_smile:

Par contre, je ne vois pas comment ton code peut fonctionner : char* result1 = c’est un pointeur sur char, donc soit tu modifies le nombre in situ (str[i] = X), soit tu fais quelque chose.

Si j’étais toi, je :

  • stockerai les nombres à l’envers, c’est à dire pour 3000, str[0] = 0, str[1] = 0, str[2] = 0, str[3] = ‘3’, l’information du signe peut y être stockée.
  • renverrai une nouvelle chaîne systématiquement en prenant soit de libérer les anciennes si besoin
  • quand tu additionnes, le nouveau nombre peut provoquer des retenues en cascade, mais sa taille est au moins max(strlen(a), strlen(b)) : tu peux très bien aller au double de la taille, et redimensionner à la volée le tableau.

heu … pas tout compris c’est gentil je vais faire des recherches et utilisé ce que tu m’as donné
merci encore:super: