Probleme compilateur en C
Moustiquet
Messages postés
254
Statut
Membre
-
fiddy Messages postés 11653 Statut Contributeur -
fiddy Messages postés 11653 Statut Contributeur -
Bonjour,
#include <stdio.h>
#include <stdlib.h> /*librairie standard en C*/
#include <time.h>/* pour la fonction time*/
/*Cette fontionne retourne un nombre choisi au hasard entre 2 bornes*/
int aleatoire (int borneInf, int borneSup) {
return rand()% (borneSup - borneInf +1) - borneInf;
}
void afficher (int tableau [], int nbElem, int debut, int fin)
{
int i;
printf ("liste des %d premiers et %d derniers elements:\n",debut, fin);
for (i=0; i<nbElem; i++)
if( i<debut || i >= nbElem-fin)
printf("%4d) %10d\n", i, tableau[i]);
else
if (i==debut)
printf("%4d) ect...\n", i);
printf("\n\n");
}
void determinerMinMax(int tableau[], int nbElem)
{
int i;
int mini, maxi;
mini= maxi= tableau[0];
for (i-0;i<nbElem; i++)
{
if(tableau [i]<mini)
mini=tableau[i];
if (tableau[i]>maxi)
maxi=tableau[i];
}
printf("Valeur la plus petite: %6d\n",mini);
printf("Valeur la plus grande : %6\n", maxi);
printf ("\n\n");
}
void trier (int tableau[], int nbElem)
{
int i, j, indMin;
int tempo;
for (i=0;i< nbElem - 1 ; i++)
{
indMin=1;
for(j=i + 1;j < nbElem;j++)
if(tableau[j]< tableau [indMin])
indMin=j;
if (indMin != i){
tempo =tableau[i];
tableau[i]= tableau [indMin];
tableau [indMin]= tempo;
}
}
}
int main()
{
#define BORNE1 10000/*taillle du tableau*/
const int BORNE2 = 9000,
VAL_MIN=500,
VAL_MAX = 30000;
int valeur[BORNE1];
int nbElem;/*nombre d'element du tableau*/
int i;
strans(time(0));
nbElem=aleatoire(BORNE2,BORNE1);
for(i=0;i< nbElem; i++)
valeur[i]=aleatoire (VAL_MIN,VAL_MAX);
afficher (valeur, nbElem, 5, 10);
determinerMinMax(valeur, nbElem);
trier (valeur, nbElem);
afficher (valeur, nbElem, 7,3);
printf("\n");
system("pause");
return 0;
}
Dans ce programme le compilateur me renvoie ce message, mais je ne comprend pas ce qu'il veut dire
C:\DOCUME~1\Claude\LOCALS~1\Temp\ccSwaaaa.o(.text+0x28e) In function `main':
[Linker error] undefined reference to `strans' C:\DOCUME~1\Claude\LOCALS~1\Temp\ccSwaaaa.o(.text+0x28e) ld returned 1 exit status
Merci
A voir également:
- Probleme compilateur en C
- Codeblocks avec compilateur - Télécharger - Langages
- Compilateur basic gratuit - Télécharger - Édition & Programmation
- Compiler plusieurs pdf en un seul - Guide
- Compiler plusieurs feuilles excel en une seule - Guide
- Compilateur pascal - Télécharger - Édition & Programmation
3 réponses
Hello
Il semblerait que ton compilateur digère mal cet appel à une fonction strans(time(0)) au debut de main()
on a l'impression qu'il ne la connait pas.
je connais pas cette fonction et quand j'interroge ggogle, il semble pas la connaître
Il semblerait que ton compilateur digère mal cet appel à une fonction strans(time(0)) au debut de main()
on a l'impression qu'il ne la connait pas.
je connais pas cette fonction et quand j'interroge ggogle, il semble pas la connaître
Une petite remarque en passant. Maintenant que tu commences à t'aguerrir en C, penses donc aux gens qui ne sont pas plongés dans ton code depuis des heures : essaies de le mettre en forme car ça leur facilite énormément la lecture.
Évidemment, les pro du C n'ont pas forcément besoin de cette présentation pour trouver le bug, mais comme des non-pro peuvent aussi chercher à te répondre, ça serait vraiment sympa d'avoir une petite pensée pour eux.
exemple de mise en forme:
Évidemment, les pro du C n'ont pas forcément besoin de cette présentation pour trouver le bug, mais comme des non-pro peuvent aussi chercher à te répondre, ça serait vraiment sympa d'avoir une petite pensée pour eux.
exemple de mise en forme:
#include <stdio.h>
#include <stdlib.h> /*librairie standard en C*/
#include <time.h>/* pour la fonction time*/
#define BORNE1 10000/*taillle du tableau*/
/*Cette fontionne retourne un nombre choisi au hasard entre 2 bornes*/
int aleatoire (int borneInf, int borneSup)
{
return rand()% (borneSup - borneInf +1) - borneInf;
}
void afficher (int tableau [], int nbElem, int debut, int fin)
{
int i;
printf ("liste des %d premiers et %d derniers elements:\n",debut, fin);
for (i=0; i<nbElem; i++)
if( i<debut || i >= nbElem-fin)
printf("%4d) %10d\n", i, tableau[i]);
else
if (i==debut)
printf("%4d) ect...\n", i);
printf("\n\n");
}
void determinerMinMax(int tableau[], int nbElem)
{
int i;
int mini, maxi;
mini= maxi= tableau[0];
for (i-0;i<nbElem; i++)
{
if(tableau [i]<mini)
mini=tableau[i];
if (tableau[i]>maxi)
maxi=tableau[i];
}
printf("Valeur la plus petite: %6d\n",mini);
printf("Valeur la plus grande : %6\n", maxi);
printf ("\n\n");
}
void trier (int tableau[], int nbElem)
{
int i, j, indMin;
int tempo;
for (i=0;i< nbElem - 1 ; i++)
{
indMin=1;
for(j=i + 1;j < nbElem;j++)
if(tableau[j]< tableau [indMin])
indMin=j;
if (indMin != i)
{
tempo =tableau[i];
tableau[i]= tableau [indMin];
tableau [indMin]= tempo;
}
}
}
int main()
{
const int BORNE2 = 9000,
VAL_MIN = 500,
VAL_MAX = 30000;
int valeur[BORNE1];
int nbElem;/*nombre d'element du tableau*/
int i;
strans(time(0));
nbElem=aleatoire(BORNE2,BORNE1);
for(i=0;i< nbElem; i++)
valeur[i]=aleatoire (VAL_MIN,VAL_MAX);
afficher (valeur, nbElem, 5, 10);
determinerMinMax(valeur, nbElem);
trier (valeur, nbElem);
afficher (valeur, nbElem, 7,3);
printf("\n");
system("pause");
return 0;
}
Salut,
Il suffit de lire le message même s'il n'est pas agréable à lire : [Linker error] undefined reference to `strans' On cherche donc à quelle ligne, cette fonction est utilisée.
Et là on trouve en début de main : strans(time(0)); fonction non standard.
Il s'agit de la fonction srand. Donc remplace strans(time(0)) par srand(time(NULL));
Cdlt
Il suffit de lire le message même s'il n'est pas agréable à lire : [Linker error] undefined reference to `strans' On cherche donc à quelle ligne, cette fonction est utilisée.
Et là on trouve en début de main : strans(time(0)); fonction non standard.
Il s'agit de la fonction srand. Donc remplace strans(time(0)) par srand(time(NULL));
Cdlt