Rechercher : dans
Par :

Tableau en c

Dernière réponse le 25 mar 2006 à 20:14:37 hayam_kin, le 25 mar 2006 à 12:36:32 
 Signaler ce message aux modérateurs

Jai un petit probléme dans mon code qui ne me donne pas ce que je souhaite,le probléme est de determiner la valeur max d'un tableau et de determiner sa position:voila mon code qui ne marche pas!!

#include<stdio.h>
#include<conio.h>
main()
{
int n,i,tab[50],max=tab[0],pos=0;
printf("saisir un entier n<=50:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("element %d:",i);
scanf("%d",&tab[i]);
}
for(i=0;i<n;i++)
{
printf("tab[%d]=%d\n",i,tab[i]);
}
for(i=0;i<n;i++)
{
if(tab[i]>max)
{
max=tab[i];
pos=i;
}
}
printf("la valeur tab[%d] est max occupe la position %d\n",tab[i],i);
system("pause");
}

Meilleures réponses pour « tableau en c » dans :
Trier un tableau sans utiliser la fonction sort VoirTrier un tableau sans utiliser la fonction sort D'abord on initialise une variable $max avec la 1ère valeur de tableau. Ensuite on va faire une boucle tant que le tableau contient encore des éléments. C'est avec la fonction splice qui a le rôle...
Les tableaux en langage C++ VoirType de données complexes Les variables, telles que nous les avons vues, ne permettent de stocker qu'une seule donnée à la fois. Or, pour de nombreuses données, comme cela est souvent le cas, des variables distinctes seraient beaucoup trop lourdes...
Langage C - Les tableaux VoirType de données complexes Les variables, telles que nous les avons vues, ne permettent de stocker qu'une seule donnée à la fois. Or, pour de nombreuses données, comme cela est souvent le cas, des variables distinctes seraient beaucoup trop lourdes...
Les pointeurs en langage C VoirDéfinition d'un pointeur Un pointeur est une variable contenant l'adresse d'une autre variable d'un type donné. La notion de pointeur fait souvent peur car il s'agit d'une technique de programmation très puissante, permettant de définir des...

1

lami20j, le 25 mar 2006 à 14:10:23

Salut,

ca pourra t'aider. Regarde ici un code qui trouve le plus grand et le plus petit nombre parmi 5 nombres et aussi leur position. A toi d'adapter à ton problème.

http://www.commentcamarche.net/forum/affich-1956018-resoudre­-un-algorithme-lisez-...

[lamitest@localhost bin]$ ./nb_min_max
Entrez les 5 nombres (separés par espace)  : 2 5 9 2 5
Le nombre plus grand est : 9 dans la position 3
Le nombre plus petit est : 2 dans la position 4
Ce code ne gére pas les doublons.
Resultat sans doublons :
[lamitest@localhost bin]$ ./nb_min_max
Entrez les 5 nombres (separés par espace)  : 25 9 8 5656 2
Le nombre plus grand est : 5656 dans la position 4
Le nombre plus petit est : 2 dans la position 5
[lamitest@localhost bin]$

Je préfère la version Perl http://www.commentcamarche.net/forum/affich-1956018-resoudre­-un-algorithme-lisez-...
[lamitest@localhost bin]$ perl my_perl_script/algo_nb_ccm031205.pl
Fixez le nombre N, 5 par défaut: 10
Entrez le nombre 1 : 2
Entrez le nombre 2 : 5
Entrez le nombre 3 : 45
Entrez le nombre 4 : 2
Entrez le nombre 5 : 45
Entrez le nombre 6 : 2
Entrez le nombre 7 : 565
Entrez le nombre 8 : 2
Entrez le nombre 9 : 565
Entrez le nombre 10 : 48

Vous avez entrez les nombres suivantes : 2, 5, 45, 2, 45, 2, 565, 2, 565, 48
Le plus grand nombre est : 565. Saisie 2 fois. Trouvé dans les positions 7, 9.
Le plus petit nombre différent de 0 est : 2. Saisie 4 fois. Trouvé dans les positions 1, 4, 6, 8.
[lamitest@localhost bin]$

Répondre à lami20j

2

hayam_kin, le 25 mar 2006 à 16:19:31

Le probléme ne se resout pas encore....
je sais bien que ma diffuculté reside dans l'aafichage de la valeur max et de sa position,cad dans le dernier printf!! sinon tt mon programme est juste sauf pour le printf car en exécutant jobtient des valeurs vraiment qui n'ont a avoir avec celles que j'ai entré...
merci encore

Répondre à hayam_kin

3

lami20j, le 25 mar 2006 à 16:34:57

Re,

#include<stdio.h>
main()
{
  int n,i,tab[50],max=tab[0],pos=0;
  printf(\"saisir un entier n<=50:\");
  scanf(\"%d\",&n);
  for(i=0;i<n;i++)
  {
    printf(\"element %d:\",i);
    scanf(\"%d\",&tab[i]);
  }
  for(i=0;i<n;i++)
  {
    printf(\"tab[%d]=%d\n\",i,tab[i]);
  }
  for(i=0;i<n;i++)
  {
    if(tab[i]>max)
    {
      max=tab[i];
      pos=i;
    }
  }
  printf(\"la valeur max est %d et occupe la position %d\n\",max,pos+1);
}
et le résultat
[lamitest@localhost bin]$ gcc -o nb_min_max_2_ccm nb_min_max_2_ccm.c
[lamitest@localhost bin]$ ./nb_min_max_2_ccm
saisir un entier n<=50:6
element 0:25
element 1:87
element 2:89
element 3:23
element 4:125
element 5:5
tab[0]=25
tab[1]=87
tab[2]=89
tab[3]=23
tab[4]=125
tab[5]=5
la valeur max est 125 et occupe la position 5
[lamitest@localhost bin]

Répondre à lami20j

4

hayam_kin, le 25 mar 2006 à 19:07:29

En fait merci pour ton aide !!
je sais mnt lerreur ke je faisais!!
dans l'initialisation jai fait :
max=tab[0];
alors ke jaurais du faire :
max=0;
:D merci pour tt

Répondre à hayam_kin

5

lami20j, le 25 mar 2006 à 19:14:52

Re,

regarde aussi

 printf(\"la valeur tab[%d] est max occupe la position %d
\",tab[i],i);


i c'est une variable que tu utilises pour incrémentation, une fois sortie de ta boucle, c'est fini avec i

En revanche tu stocke dans max et pos la valeur maximale et la positon

donc la ligne doit être

printf(\"la valeur max est %d et occupe la position %d
\",max,pos+1);

Répondre à lami20j

6

 brakeche, le 25 mar 2006 à 20:14:37

Voici un exercice (correcte)qui inclu le maximum et le minimum
#include<stdio.h>
#include<stdlib.h>
main()
{

int vect[100];
int i,n,min,max;

printf("entrez la dimention du tableau");
scanf("%d",&n);
for(i=0;i<n;i++)
{printf("entrer la valeur de la case %d du tableau ",i);
scanf("%d",&vect[i]);
}
min=vect[0];
for(i=0;i<n;i++)
{if (vect[i]<min){
min=vect[i]; }
}
max=vect[1];
for(i=0;i<n;i++)
{if (vect[i]>max){
max=vect[i]; }
}
printf("LE MINIMUM=%d LE MAXIMUM=%d",min,max);
printf("\n");
system("PAUSE");
}

Répondre à brakeche