Système de tri et comptage

Contenu du snippet

Voici un exercice donné en première année de DUT Mesures Physiques. Il est assez basique mais donne un moyen simple de réaliser un tri. Pour l'algorythme de comptage je suis pas sur qu'il soit vraiment optimal. Mais bon vu que c'est mon premier code C...
Petite précision il à été testé avec le compilateur gcc sous linux (débian).

Source / Exemple :


/* 10 02 2006 Tri et Comptage */ 
/* Auteur : William POTTIER */
#include <stdio.h>

main()
{
	/* Variables générale */
	int k, N, j, kmini, kmaxi;
	double mini, notes[3001];
	/* Variables de comptages */
	int comptage[3001], i;
	double note;
	
	
	/* Acquisition de N */
	printf(" Recherche d'un minimum");
	printf(" Nombre total de notes a saisir ? ");
	scanf("%d",&N);
	
	/* Acquisition des notes */
	printf("Entrez les notes:\n");
	for(k=0;k<N;k++)
	{
		printf("Note %d: ",k+1);
		scanf("%lf", &notes[k]);
	}
	/* On mets une ligne de séparation */
	printf("===========================================\n");
	
	/* Tri */
	for(j=0; j<(N-1); j++)
	{
		mini = notes[j];
		kmini = j;
		
		for(k=j+1; k < N; k++)
		{
			if(mini > notes[k])
			{
				mini = notes[k];
				kmini = k;
			}

		}

		notes[kmini] = notes[j];
		notes[j] = mini;

		
	}

	/* Comptage */
	i=0;
	kmaxi = N-1;
	for(k=notes[0]; k < notes[kmaxi]+1; k++)
	{
		for(j = 0; j < N; j++)
		{
			if(notes[j] == k)
			{
			comptage[i] = comptage[i] + 1;
			}
		}
		i++;
	}
	
	
	/* Affichage des notes triées */
	printf("Note(s) triée(s) :\n");
	note = notes[0];
	for(k = 0; k < (notes[kmaxi] - notes[0] + 1) ; k++)
	{
		printf("%lf (%d)\n", note, comptage[k]);
		note++;
	}	
	
	/* Fin du programe */
	printf("*******************************************\n");
	printf("*** Merci d'avoir utilisé ce programme! ***\n");
	printf("*******************************************\n");
}

Conclusion :


Je suis ouvert à toutes remarques et suggestion pour progresser alors n'hésitez pas.

A voir également

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.