Statistiques (moyenne, tri, médiane, étendue)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 493 fois - Téléchargée 36 fois

Contenu du snippet

Mon premier prog c++. Je part d'une source d'un bouquin et je l'ai étendue

Source / Exemple :


#include <iostream.h>
#include <string.h>
#include <stdlib.h>

void main()
{
	int cnt,sercnt,cnt2[2];
	int i,c;
	char buffer[128],buf[5];
	double *n=NULL;
	double *blp;
	double sum=0.0;
	double min,max,tmp;
	float result;
	double med;

	//cout<<"/033[2J";
	cout << "\t\tCalculs statistiques\n";
	cout << "Statistiques sur une liste\n";
		cout << "Terminer la serie par \"f\"\nLes entrees non numeriques seront considerees comme egales a 0\n\n";
		cnt=0;
		do
		{
			cout << "Nombre nø "<<cnt+1<<" : ";
			cin.getline(buffer,128);
			if (strcmp("f",buffer))
			{
				if ((n=(double *) realloc(n,(cnt+1)*sizeof(double)))==NULL)
				{
					cout<<"Memoire insuffisante";
					break;
				}
				n[cnt]=atof(buffer);
				blp=n;
				cnt++;
			}
		} while (buffer[0]!='f');
		if (cnt>0)
		{
			if (n==NULL)
				n=blp;
		cout << "\nVous avez saisi : "<<cnt<<" nombre(s)";
			for(i=0;i<cnt;i++)
				sum=sum+n[i];
			cout<<"\nSomme : "<<sum;
			cout <<"\nMoyenne : "<<sum/cnt;
			min=n[0];
			for (i=0;i<cnt;i++)
				if (min>n[i])
					min=n[i];
			max=n[0];
			for (i=0;i<cnt;i++)
				if (max<n[i])
					max=n[i];
			cout <<"\nMinimum : "<<min;
			cout <<"\nMaximum : "<<max;
			cout <<"\nEtendue : "<<max-min;
			for (i=0;i<cnt;i++)
			{
				for (c=0;c<(cnt-1);c++)
				{
					if (n[c]>n[c+1])
					{
						tmp=n[c+1];
						n[c+1]=n[c];
						n[c]=tmp;
					}
				}
			}
			cout<<"\nNombres tries :\n";
			for (i=0;i<cnt;i++)
				cout<<n[i]<<" ";
			result=float (cnt)/2;
			i=cnt/2;
			if (i==result)
			{
				//cout<<"\nle nombre d\'entrees est paire";
				med=float((n[i-1]+n[i])/2);
			}		
			else
			{
				//cout <<"\nle nombre d\'entree est impaire";
				med=n[i-1];
			}
			cout <<"\nMediane : "<<med; 
			cout <<"\n\n";
			cin.getline(buffer,128);
			exit(0);
		}
		if (n!=NULL)
		{
			free(n);
		}
	}

Conclusion :


Merci de ne pas faire la réflexion "C'est pour quel compilateur?" Démerdez vous. Pour une source de ce niveau, il n'y a pas besoin d'explications de compilateur...Non mais.

A voir également

Ajouter un commentaire Commentaires
Messages postés
63
Date d'inscription
mardi 15 mai 2001
Statut
Membre
Dernière intervention
14 mai 2004

1/pour les float/double je corrigerai
2/Pour le realloc c'est pas de moi j'ai dit que j'étendais la source mais à mon avis "ils" savent de quoi "ils" parlent dans le bouquin où je l'ai pris s'est leur job... alors...
3/que dire?
4/explique toi
@+
Messages postés
527
Date d'inscription
vendredi 14 septembre 2001
Statut
Membre
Dernière intervention
6 octobre 2008
3
1/Attention aux confusions entre les float et les doubles
2/ Même remarque que kjus: realloc n'est pas pertinent ici
3/ Ne laisse pas les informations de debug (style //cout<<"blabla") en commentaires, le code est moins lisible
4/A l'avenir, pourquoi ne pas faire une sortie sous forme d'histogrammes en mode texte ?
Messages postés
269
Date d'inscription
mercredi 24 avril 2002
Statut
Membre
Dernière intervention
9 juin 2003

n[cnt]=atof(buffer);
>> atof ca marche comment ?

sinon, tu connais la diff en malloc() et realloc() que tu utilises ?

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.