Aide Réalisation d'un programme - C - Programmation
Marsh Posté le 27-02-2013 à 10:42:28
Ben déjà, tes fonctions somme / moyenne ne prennent qu'un argument, or tu les appelles avec deux arguments.
Faut que tu rajoutes cet argument :
Code :
|
Simplement, il te dira combien de cases ton tableau a (donc tu t'en sers si tu parcours ton tableau).
Pour ce qui est du troisième choix, tu dois parcourir ton tableau pour retrouver la valeur la plus petite, et aussi le n° de la case qui lui correspond.
Et dernier truc, le main est signé sur un int, pas un void (même si le compilo tolère ça)
Marsh Posté le 28-02-2013 à 08:17:38
Salut
Quand on utilise un tableau d'éléments, il peut être intéressant (si c'est possible) d'ajouter un élément "à part" indiquant la fin du tableau. Ca t'évite alors d'avoir à passer la taille du tableau aux fonctions destinées à le manipuler.
Exemple: tu veux afficher ton tableau
Méthode 1: on passe la taille du tableau (ce que tu fais)
Code :
|
Méthode 2: on utilise une valeur "sentinelle"
Code :
|
L'avantage de cette seconde méthode c'est que si le tableau change de taille, tu n'as qu'une seule modif à faire. L'inconvénient c'est qu'il faut avoir à disposition une valeur n'ayant aucune signification réelle pour ton algo. Ici c'est possible car il s'agit de notes réelles donc on peut utiliser -1 (note impossible) mais parfois on n'a pas de possibilité...
akonoly a écrit : En plus, je n'arrive pas à formaliser le troisième choix. |
Tu crées 2 variables: une position et une valeur
Tu mets la position à 0 et la valeur à t[0]
Tu boucles sur ton tableau en partant de 1 (ce détail n'est pas obligatoire mais ça optimise)
A chaque itération, si l'élément [i] est plus petit que la valeur alors
tu copies l'élément[i] dans la valeur
tu copies i dans la position
A la fin de la boucle, tu affiches la valeur et la position...
Marsh Posté le 27-02-2013 à 10:33:29
Bonjour,
Je souhaiterais avoir de l'aide pour la résolution du problème ci-dessous.
A partir d'un tableau donné:
12,26,35,98,23,57,61,25.
il est demandé de réaliser une application qui va afficher un menu avec comme choix:
1- Affichage de la moyenne;
2-Affichage de la somme;
3- Affichage du plus petit nombre et de sa position;
4-Quitter.
Pour cela, j'ai réalisé ce qui suit:
#include "stdio.h"
float moyenne( int *t, );
int somme(int *t );
void main()
{
int i;
int t[8]={12,26,35,98,23,57,61,25};
printf("\n1. Affichage de la moyenne" );
printf("\n2. Affichage de la somme" );
printf("\n3. Affichage du plus petit nombre et sa position" );
printf("\n4. Quitter" );
printf("\n" );
scanf("%d",&i);
switch(i)
{
case 1 : {printf("\nMoyenne = %3.3f",moyenne(t,8)); break;}
case 2 : {printf("\nSomme = %d",somme(t,8)); break;}
case 3 : { exit(1); break;}
default:;
}
getch();
exit(1);
}
int somme(int *t)
{
int i;
int s=0;
for(i=0;i<8;i++) s+=t[i];
return(s);
}
float moyenne(int *t)
{ return((float)somme(t,8)/8; }
Ce code ne fonctionne pas. En plus, je n'arrive pas à formaliser le troisième choix.
Je compte sur votre aide.[cpp][/cpp]