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!
J’ai répondu.
Maintenant, pour le côté utile de la réponse, on repassera …
En quel langage, hein ?
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
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: