Tableaux

Fermé
Titan14100 Messages postés 1 Date d'inscription jeudi 1 novembre 2012 Statut Membre Dernière intervention 1 novembre 2012 - 1 nov. 2012 à 14:05
armasousou Messages postés 1270 Date d'inscription dimanche 16 août 2009 Statut Membre Dernière intervention 30 décembre 2016 - 2 nov. 2012 à 10:58
Bonjour,

Alors voila j'ai bientôt un contrôle en C et pour m'entraîner j'ai décidé de faire le contrôle de l'année dernière que voici :

Ecrire un algorithme qui affiche l'indice de la dernière occurrence de la valeur val dans un tableau d'entiers trié si val appartient au tableau,sinon affiche 0 si val n'est pas dans le tableau.
on supposera que le tableau est rempli et contient n éléments.


Pour trié le tableau j'y arrive mais j'affiche juste l'indice du plus grand nombre mais pas l'indice de la dernière récurrence.
Il me manque un morceau de code pour afficher l'indice de la dernière récurrence.


voici mon début de code :

#include<stdio.h>

int main ()
{
int i=0;
int n=0;
printf("entrer le nombre de valeur que voulez \n");
scanf("%d",&n);
int tab[n];

for (i = 0; i<n; i++)
{
printf("Entrer le chiffre que vous voulez mettre dans le tableau \n");
scanf("%d",&tab[i]);
}
int j;
for (i=0 ; i<n ; i++) {
int mini = tab[i];
int position = i;
for (j = i+1; j < n ; j++) {
if (tab[j] < mini) {
mini=tab[j];
position = j;

}
}

int temp = tab[i];
tab[i] = tab[position];
tab[position] = temp;
}

for (i = 0 ; i < n ; i++) {
printf("%d ",tab[i]);
}
printf("\n");

int indice=0;
for(i=1;i<n;i++)
{
if (tab[indice]<tab[i])
{
indice=i;
}
}
printf("l'indice du plus grand nombre est : %d",indice);
printf("\n");
}




1 réponse

armasousou Messages postés 1270 Date d'inscription dimanche 16 août 2009 Statut Membre Dernière intervention 30 décembre 2016 83
2 nov. 2012 à 10:58
Y a beaucoup beaucoup d'erreur ...

Déja, int tab[n];

On peut pas initialiser quelque chose au milieu d'un bout de code et encore moins un tableau d'une taille non connu par le compilateur comme ça ...

Je te conseil de faire un int tab[100]; et d'utilisé n case à l'intérieur de ton tableau (les tableaux dynamiques ne sont pas encore à ta portée apparement ^^).

Ton bout de programme qui trie est vraiment pas génial.

Essaye un truc comme ça :

J'initalise le mini à t[0] et l'indice min à 0, ma boucle commence à 1
je regarde SI t[indice de la boucle] < mini, si oui mini = t[indice boucle] et indice = indice boucle si non je continu.


Essaye d'être plus rigoureux avec tes accolades, c'est vraiment le foutoire ^^
0