Les Fous du Binaire
Les Fous du Binaire
Les Fous du Binaire
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.


Imaginez un forum qui vous aide a comprendre vos cours d'informatique vos propose des exercices (solutionner / non solutionner), vos aide a réaliser vos Tp d'informatique...& plein d'autre choses intéressantes Un tel forum est : les Fous du Binaire
 
AccueilPortailRechercherDernières imagesS'enregistrerConnexion
Le Deal du moment : -35%
Philips Hue Kit de démarrage : 3 Ampoules Hue ...
Voir le deal
64.99 €

 

 la somme de deux entiers de plus de 400 chiffres

Aller en bas 
AuteurMessage
HOUSSAINE

HOUSSAINE


Messages : 5
Points : 5338
Date d'inscription : 11/03/2010

la somme  de deux entiers de  plus  de 400 chiffres Empty
MessageSujet: la somme de deux entiers de plus de 400 chiffres   la somme  de deux entiers de  plus  de 400 chiffres I_icon_minitimeVen 16 Avr - 6:24

bonjours à tous le monde
ce programme fait la somme de deux entiers de plus de 400 chiffres
Code:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define N 450
int longeur(char tab[])
{
 char *p;
 int i=0;
 p=tab;
 while(*p)
 {i++;p++;}
 return i;
}
int maxim(int val1,int val2)
{
 int max;
 if(val1>val2)max=val1;
 else max=val2;
 return max;
}
int minm(int val1,int val2)
{
 int min;
 if(val1>val2)min=val2;
 else min=val1;
 return min;
}
somentier(char nbr1[],char nbr2[])
{
 char *chain;
    int log1,log2,r1,r2,i,j,t,k1=0,k2=0,pam,entr1[N],entr2[N];
    double som[N],retn[N],val;
    log1=longeur(nbr1);
 log2=longeur(nbr2);
    r1=log1%4;
 r2=log2%4;
// copier les elements de nbr1[] dans un tableau d'entiers
 for(i=log1-1;i>=0;i-=4)
 {
  if(i>=3) pam=4;
  else if (i>=0) pam=r1;
  chain=malloc((pam+1)*sizeof(char));
  for(j=pam-1,t=0;j>=0;j--,t++)
  chain[j]=nbr1[i-t];
  chain[pam]='\0';
  entr1[k1]=atoi(chain);
      printf("entr[%d]=%d\n",k1,entr1[k1]);
    k1++;
 }
// copier les elements de nbr2[] dans un tableau d'entiers
 for(i=log2-1;i>=0;i-=4)
 {
  if(i>=3) pam=4;
  else if (i>=0) pam=r2;
  chain=malloc((pam+1)*sizeof(char));
  for(j=pam-1,t=0;j>=0;j--,t++)
  chain[j]=nbr2[i-t];
  chain[pam]='\0';
  entr2[k2]=atoi(chain);
      printf("entr[%d]=%d\n",k2,entr2[k2]);
    k2++;
 }
 // calculer la somme de les deux entiers
som[0]=entr1[0]+entr2[0];
val=som[0]/10000;
retn[0]=ceil(val)-1;
som[0]=som[0]-retn[0]*10000;
for(i=1;i<maxim(k1,k2);i++)
{
 if(i<minm(k1,k2))
 {
  som[i]=entr1[i]+entr2[i]+retn[i-1];
  val=som[i]/10000;
  retn[i]=ceil(val)-1;
  som[i]=som[i]-retn[i]*10000;
 }
 else {
  if(k1>k2)som[i]=entr1[i]+retn[i-1];
  else som[i]=entr2[i]+retn[i-1];
  retn[i]=0;
 }
}
// afficher la somme de les deux entiers
printf("la somme est :\n");
for(j=i-1;j>=0;j--)
printf("%.0lf",som[j]);
printf("\n");

}
main()
{
 char nbr1[N],nbr2[N];
    printf("entrer le premier nombre entier :");
 scanf("%s",nbr1);
    printf("entrer le deuxieme nombre entier :");
 scanf("%s",nbr2);
 somentier(nbr1,nbr2);
}
Revenir en haut Aller en bas
 
la somme de deux entiers de plus de 400 chiffres
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» calcule deux nbr

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Les Fous du Binaire :: Programmation :: Langage C-
Sauter vers: