Calcul de x a la puissance y

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 271 fois - Téléchargée 30 fois

Contenu du snippet

Programme qui calcule un nombre x a une puissance y positive.

Source / Exemple :


/*	Calcule x a la puissance y dans tous les cas*/

#include<stdio.h>
int main()
{
	int retour	=	0;
	float	x	=	0;	
	int	y	=	0;	
	float puissance = 1; 
	int i;
	int z	=	0;

	do
	{
		printf("\nVeuillez entrer votre nombre entier: ");
		retour=scanf("%f",&x);
		fflush(stdin);

		if(retour < 1)
		{
			printf("\nVous avez entre une mauvaise donnnee\n");
		}
	}
	while(retour < 1);
	
	do
	{
		printf("\nVeuillez entrer votre puissance: ");
		retour=scanf("%d",&y);
		fflush(stdin);

		if(retour < 1)
		{
			printf("\nVous avez entre une mauvaise donnee\n");
		}
	}
	while(retour < 1);

	if(x != 0 && y == 0)
	{
		printf("\nLa puissance du nombre entre est 1\n");
	}

	else
	{
		if(x == 0 && y > 0)
		{
			printf("\nLa puissance du nombre entre est 0\n\n");
		}
		
		
			else
			{
				if((x == 0 && y == 0) || (x == 0 && y < 0))
				{
					printf("\nLa puissance du nombre entre est indetermine\n\n");
				}
			}
	}

	if(x > 0 && y > 0)
	{
		for(i = 0 ; i < y; i++)
		{
			puissance = puissance * x;
			
		}
		printf("\n%2.2f a la puissance % d  donne  %3.4f\n\n",x,y,puissance);

	}

	else
	{
		if(x > 0 && y < 0)
		{
			z = y * -1;

			for(i = 0 ; i < z ; i++)
			{
				puissance = puissance / x;
			}
			
			printf("\n%2.2f a la puissance %d donne %3.10f\n\n",x,y,puissance);
		}

			else
			{
				if(x < 0 && y <0)
				{
					for(i = 0 ; i < -y ; i++)
					{
						puissance = puissance / x;
					}
					printf("\n%2.2f a la puissance %d donne %3.10f\n\n",x,y,puissance);
				}
			}
	}

	if(x < 0 && y > 0)
	{
		for(i = 0 ; i < y; i++)
		{
			puissance = puissance * x;
		}
		printf("\n%2.2f a la puissance % d  donne  %3.4f\n\n",x,y,puissance);
	}

		
	
	return 0;
	
}

Conclusion :


signalez les erreurs

A voir également

Ajouter un commentaire Commentaires
Messages postés
8
Date d'inscription
mercredi 16 octobre 2002
Statut
Membre
Dernière intervention
10 février 2005

erf, oula, g trop bu moi ce soir, dsl, je raconte n importe koi :)
il semble bien que g oublie une condition a mon if, mais je ne sais plus trop la
Messages postés
8
Date d'inscription
mercredi 16 octobre 2002
Statut
Membre
Dernière intervention
10 février 2005

effectivement, le truc du negatif, c seulement quand la puissance n est pas entiere, merci de me l avoir fait remarquer, je l avais oublié :)
de plus, refaire les fonctions, tu les as refaites, ca serai juste du copier coller, avec un peu de if else par ci par la
Messages postés
584
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
29 mai 2015

1) Pour les puissances non-entières gvhecke voulait parler de vraiment le reprogrammer (y compris les fonctions exp et log). D'ailleurs comme je l'ai dit qq msg au dessus tu peux le voir dans ma dernière source.
2) Ton algo est faux pour les x<0. Par exemple tu fais puissance(-2,4) ça retourne - (puissance(2,4)) !!! Donc 16 = -16 !!!

Et la programmation des fonctions comme exp et log et mathématiquement d'un tout autre niveau!
Messages postés
8
Date d'inscription
mercredi 16 octobre 2002
Statut
Membre
Dernière intervention
10 février 2005

bon, mon comentaire est pas en rapport au code, mais a l algo de la puissance non entiere.
il doit faire partie des plus petit du monde :
fonction reel puissance ( reel x, reel y )
si x > 0
alors
retourne exponentiel(y*log(x))
sinon
retourne -(puissance(-x, y)
fin

personnellement, je trouve pas ca bcp plus passionnant que les puissances sur entier
Messages postés
65
Date d'inscription
vendredi 17 octobre 2003
Statut
Membre
Dernière intervention
21 mai 2008

J'ai été voir ca .... j'ai qu'une chose à dire: Bravo !

Je crois que celà permettra à un grand nombre de personnes d'avoir un appercu de ce que cachait <math.h> sous son capot.
Afficher les 13 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.