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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 932 fois - Téléchargée 37 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
ADN733R Messages postés 63 Date d'inscription mardi 15 mai 2001 Statut Membre Dernière intervention 14 mai 2004
11 juin 2002 à 22:38
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
@+
cs_GoldenEye Messages postés 527 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 6 octobre 2008 4
11 juin 2002 à 16:39
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 ?
cs_kjus Messages postés 269 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 9 juin 2003
6 juin 2002 à 23:31
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.