Probleme programmation en language c

Fermé
physicien - 12 nov. 2010 à 13:26
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 - 12 nov. 2010 à 15:26
bonjour

j'ai programmer 2 fonctions , mais je ne sais pas pourquoi y a pas d'erreurs de programmation mais j'optiens aucun resltats a la compilation !


premiere fonction

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define dim 100


int main ()
{
int tab[dim],i,z;

int s=0;
for (i=0;i<dim;i++)
{
tab[i]=i+1;
}
z=somme(s);
printf("la somme du tableau est égale a : %d",s);

system("pause");

}

int somme(int tab[]){
int i=0;
int s=0;

for (i=0;i<dim;i++)
{
s=s+tab[i];
}
return(s);
}




Deuxiéme fonction (trouver le minimum de 10 chiffre)

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define dim 10


int tri(int tab[]){
int i,min;
min=tab[1];
if (tab[i]>tab[1]){
min=tab[i];
}
else{
min=tab[1];
}

return(min);
}

int main ()
{
int tab[dim],i,z,min;
for (i=0;i<dim;i++){
scanf("%f",&tab[i]);
}
z=tri(min);
printf("le minimum est : %f",min);

system("pause");

}




Merci d'avance

3 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
12 nov. 2010 à 13:49
Pour le premier programme.
Je vois une possible erreur :
printf("la somme du tableau est égale a : %d",s);
Ceci n'affiche pas forcément à l'écran.
Pour forcer l'affichage, soit tu le fais explicitement avec fflush.
Soit, plus simplement : printf("la somme du tableau est égale a : %d\n",s);
Le \n correspond au saut de ligne.
Petite correction également : n'oublie pas de mettre le return 0; dans ton main après ton system("pause");

Même remarque pour ton autre programme.
Autres remarques pour le deuxième programme
scanf("%f",&tab[i]);
Tu mets "%f" alors que tes variables sont de type int. Erreur que ton compilateur devrait te signaler. Si tu veux utiliser les nombres flottants, je te conseille d'utiliser double plutôt que float. Auquel cas, il faudra mettre "%lf" (L minuscule).

Même remarque pour ton printf.

Cdlt,
1
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
12 nov. 2010 à 15:26
Moi j'aurais plutôt écrit:
#include <stdio.h>
#define DIM 10

int somme(int tab[])
{
  int i = 0;
  int s = 0;

  for (i=0; i<DIM; i++)
    s += tab[i];
  return(s);
}

int main (int argc, char* argv[])
{
  int tab[DIM], i, z;

  for (i=0; i<DIM; i++)
    tab[i] = i + 1;
  z = somme(tab);
  printf("La somme du tableau est égale à : %d\n", z);
  system("pause");
  return 0;
}
En demandant au compilateur de faire attention, il t'aurait indiqué ton erreur.
Bonne continuation.
1
D'un autre coté, je pense pas que t'affiche le résultat calculé :

premier programme : t'affiche s au lieu de z
second programme : t'affiche min au lieu de z
0