Svp , une faute que trouve pas :s:s
james hetfield
Messages postés
5
Statut
Membre
-
loupius Messages postés 789 Statut Membre -
loupius Messages postés 789 Statut Membre -
Bonjour,
svp ,j'aimerais faire un programme qui fait le tri de données par ordre alphabétique.j ai trouvé un code que j ai amélioré Les données sont des noms déjà insérés. mais il y a toujours une faute que j ai pas pu corriger :s :s
elle est dans la ligne du dernier return et c'est une --- error C2562: 'affiche' : fonction 'void' retournant une valeur--- là je veux bien croire que c est une accolade que j ai oublié mais je trouve vraiment pas ou :s:s
Merci d'avance pour vos contributions!!!!
voila le code de mon programme
#include "stdafx.h"
#include <string.h>
#include <stdlib.h>
#include <iostream>
#define MAXN 30
#define MAX_etu 150
typedef struct etudiant {
char nom[MAXN];
char prenom[MAXN];
float med;
float final;
float tp;
}ETUDIANT;
void initialise(ETUDIANT *tab_etu, int nb_etu);
int recherchePosition(ETUDIANT* tab_etu,char nom1[MAXN],char prenom1[MAXN], int nbelements);
int comparer(char* nom1, char* nom2);
void insereNom(ETUDIANT *tab_etu, int nbelements,int pos);
void affiche(ETUDIANT *tab, int nb_etu);
int _tmain(int argc, _TCHAR* argv[])
{
ETUDIANT tab[MAX_etu];
int nb_etu;
float note;
char reponse;
int i=0,j=0;
printf("entrez le nombre d'etudiants\n");
scanf("%d",&nb_etu);
fgetc(stdin);
for(i=0;i<nb_etu;i++)
{initialise(tab,i);//fonction déja définie
j=recherchePosition(tab,tab[i].nom,tab[i].prenom,i);//c'est la fonction qui me pose le plus problème
printf("----------valeur retournee vaut-----%d--------------\n\n",j);// juste pour avoir le resultat sous les yeux
insereNom(tab,i+1, j);//pour inserer le dernier nom entré à la place qu'il doit occuper.
}
affiche(tab,nb_etu);//pour afficher le tableau
}
int recherchePosition(ETUDIANT* tab_etu,char nom1[MAXN],char prenom1[MAXN], int nbelements)
{
// int n, m,k=0,i=0;
int i;
int j=0;
for(i=0;i<=nbelements;i++)
{
if(strcmp((tab_etu[i].nom),nom1)<0)
{ j++;
}
}
return j;
}
void insereNom(ETUDIANT *tab_etu, int nbelements,int pos)
{
int i,j=nbelements;
i=pos; //recherchePosition(tab_etu,tab_etu[j-1].nom,tab_etu[j-1].prenom,nbelements);
j=nbelements;
while(j>i)
{
strcpy((tab_etu[j].nom),(tab_etu[j-1].nom));
strcpy((tab_etu[j].prenom),(tab_etu[j-1].prenom));
(tab_etu[j].med)=(tab_etu[j-1].med);
(tab_etu[j].final)=(tab_etu[j-1].final);
(tab_etu[j].tp)=(tab_etu[j-1].tp);
j--;
}
strcpy((tab_etu[i].nom),tab_etu[j-1].nom);
}
void affiche(ETUDIANT *tab, int nb_etu)
{
int j;
for(j=0;j<nb_etu;j++)
{
printf("\n%s",tab[j].nom);
printf("\n%s",tab[j].prenom);
printf("\n%f",tab[j].med);
printf("\n%f",tab[j].final);
printf("\n%f",tab[j].tp);
}
return 0;
}
pour la -- #include "stdafx.h" -- ça remplace la stdio.h parce que j utilise le viusal studio 2008
encore merci :)
svp ,j'aimerais faire un programme qui fait le tri de données par ordre alphabétique.j ai trouvé un code que j ai amélioré Les données sont des noms déjà insérés. mais il y a toujours une faute que j ai pas pu corriger :s :s
elle est dans la ligne du dernier return et c'est une --- error C2562: 'affiche' : fonction 'void' retournant une valeur--- là je veux bien croire que c est une accolade que j ai oublié mais je trouve vraiment pas ou :s:s
Merci d'avance pour vos contributions!!!!
voila le code de mon programme
#include "stdafx.h"
#include <string.h>
#include <stdlib.h>
#include <iostream>
#define MAXN 30
#define MAX_etu 150
typedef struct etudiant {
char nom[MAXN];
char prenom[MAXN];
float med;
float final;
float tp;
}ETUDIANT;
void initialise(ETUDIANT *tab_etu, int nb_etu);
int recherchePosition(ETUDIANT* tab_etu,char nom1[MAXN],char prenom1[MAXN], int nbelements);
int comparer(char* nom1, char* nom2);
void insereNom(ETUDIANT *tab_etu, int nbelements,int pos);
void affiche(ETUDIANT *tab, int nb_etu);
int _tmain(int argc, _TCHAR* argv[])
{
ETUDIANT tab[MAX_etu];
int nb_etu;
float note;
char reponse;
int i=0,j=0;
printf("entrez le nombre d'etudiants\n");
scanf("%d",&nb_etu);
fgetc(stdin);
for(i=0;i<nb_etu;i++)
{initialise(tab,i);//fonction déja définie
j=recherchePosition(tab,tab[i].nom,tab[i].prenom,i);//c'est la fonction qui me pose le plus problème
printf("----------valeur retournee vaut-----%d--------------\n\n",j);// juste pour avoir le resultat sous les yeux
insereNom(tab,i+1, j);//pour inserer le dernier nom entré à la place qu'il doit occuper.
}
affiche(tab,nb_etu);//pour afficher le tableau
}
int recherchePosition(ETUDIANT* tab_etu,char nom1[MAXN],char prenom1[MAXN], int nbelements)
{
// int n, m,k=0,i=0;
int i;
int j=0;
for(i=0;i<=nbelements;i++)
{
if(strcmp((tab_etu[i].nom),nom1)<0)
{ j++;
}
}
return j;
}
void insereNom(ETUDIANT *tab_etu, int nbelements,int pos)
{
int i,j=nbelements;
i=pos; //recherchePosition(tab_etu,tab_etu[j-1].nom,tab_etu[j-1].prenom,nbelements);
j=nbelements;
while(j>i)
{
strcpy((tab_etu[j].nom),(tab_etu[j-1].nom));
strcpy((tab_etu[j].prenom),(tab_etu[j-1].prenom));
(tab_etu[j].med)=(tab_etu[j-1].med);
(tab_etu[j].final)=(tab_etu[j-1].final);
(tab_etu[j].tp)=(tab_etu[j-1].tp);
j--;
}
strcpy((tab_etu[i].nom),tab_etu[j-1].nom);
}
void affiche(ETUDIANT *tab, int nb_etu)
{
int j;
for(j=0;j<nb_etu;j++)
{
printf("\n%s",tab[j].nom);
printf("\n%s",tab[j].prenom);
printf("\n%f",tab[j].med);
printf("\n%f",tab[j].final);
printf("\n%f",tab[j].tp);
}
return 0;
}
pour la -- #include "stdafx.h" -- ça remplace la stdio.h parce que j utilise le viusal studio 2008
encore merci :)
A voir également:
- Svp , une faute que trouve pas :s:s
- Pourquoi ma tv ne trouve pas toutes les chaînes - Guide
- Ou se trouve le presse papier - Guide
- Où se trouve mon adresse url ? - Guide
- Word a trouvé du contenu illisible - Guide
- Ou se trouve la corbeille de whatsapp - Guide
2 réponses
Non, un code correctement indenté donne ceci:
Bonne continuation.
#include "stdafx.h"
#include <string.h>
#include <stdlib.h>
#include <iostream>
#define MAXN 30
#define MAX_etu 150
typedef struct etudiant
{
char nom[MAXN];
char prenom[MAXN];
float med;
float final;
float tp;
} ETUDIANT;
void initialise(ETUDIANT *tab_etu, int nb_etu);
int recherchePosition(ETUDIANT* tab_etu,char nom1[MAXN],char prenom1[MAXN], int nbelements);
int comparer(char* nom1, char* nom2);
void insereNom(ETUDIANT *tab_etu, int nbelements,int pos);
void affiche(ETUDIANT *tab, int nb_etu);
int _tmain(int argc, _TCHAR* argv[])
{
ETUDIANT tab[MAX_etu];
int nb_etu;
float note;
char reponse;
int i=0,j=0;
printf("entrez le nombre d'etudiants\n");
scanf("%d",&nb_etu);
fgetc(stdin);
for(i=0;i<nb_etu;i++)
{
initialise(tab,i);//fonction déja définie
j=recherchePosition(tab,tab[i].nom,tab[i].prenom,i);
printf("----------valeur retournee vaut-----%d--------------\n\n",j);
insereNom(tab,i+1, j);
}
affiche(tab,nb_etu);
}
int recherchePosition(ETUDIANT* tab_etu,char nom1[MAXN],char prenom1[MAXN], int nbelements)
{
int i;
int j=0;
for(i=0;i<=nbelements;i++)
if(strcmp((tab_etu[i].nom),nom1)<0)
j++;
return j;
}
void insereNom(ETUDIANT *tab_etu, int nbelements,int pos)
{
int i,j=nbelements;
i=pos; //recherchePosition(tab_etu,tab_etu[j-1].nom,tab_etu[j-1].prenom,nbelements);
j=nbelements;
while(j>i)
{
strcpy((tab_etu[j].nom),(tab_etu[j-1].nom));
strcpy((tab_etu[j].prenom),(tab_etu[j-1].prenom));
(tab_etu[j].med)=(tab_etu[j-1].med);
(tab_etu[j].final)=(tab_etu[j-1].final);
(tab_etu[j].tp)=(tab_etu[j-1].tp);
j--;
}
strcpy((tab_etu[i].nom),tab_etu[j-1].nom);
}
void affiche(ETUDIANT *tab, int nb_etu)
{
int j;
for(j=0;j<nb_etu;j++)
{
printf("\n%s",tab[j].nom);
printf("\n%s",tab[j].prenom);
printf("\n%f",tab[j].med);
printf("\n%f",tab[j].final);
printf("\n%f",tab[j].tp);
}
return 0;
}Et l'on remarque tout de suite que la fonction 'int main' n'a pas de 'return' et que la fonction 'affiche' en a un.
Bonne continuation.
En indentant correctement ton code, tu vas très très rapidement trouver s'il te manques une accolade ! Sinon le code est quasiment illisible ...
Bonne continuation.
Bonne continuation.
#include "stdafx.h"
#include <string.h>
#include <stdlib.h>
#include <iostream>
#define MAXN 30
#define MAX_etu 150
typedef struct etudiant
{
char nom[MAXN];
char prenom[MAXN];
float med;
float final;
float tp;
}
ETUDIANT;
void initialise(ETUDIANT *tab_etu, int nb_etu);
int recherchePosition(ETUDIANT* tab_etu,char nom1[MAXN],char prenom1[MAXN], int nbelements);
int comparer(char* nom1, char* nom2);
void insereNom(ETUDIANT *tab_etu, int nbelements,int pos);
void affiche(ETUDIANT *tab, int nb_etu);
int _tmain(int argc, _TCHAR* argv[])
{
ETUDIANT tab[MAX_etu];
int nb_etu;
float note;
char reponse;
int i=0,j=0;
printf("entrez le nombre d'etudiants\n");
scanf("%d",&nb_etu);
fgetc(stdin);
for(i=0;i<nb_etu;i++)
{
initialise(tab,i);//fonction déja définie
j=recherchePosition(tab,tab[i].nom,tab[i].prenom,i);
printf("----------valeur retournee vaut-----%d--------------\n\n",j);
insereNom(tab,i+1, j);
}
affiche(tab,nb_etu);
}
int recherchePosition(ETUDIANT* tab_etu,char nom1[MAXN],char prenom1[MAXN], int nbelements)
{
int i;
int j=0;
for(i=0;i<=nbelements;i++)
{
if(strcmp((tab_etu[i].nom),nom1)<0)
{ j++;
}
}
return j;
}
void insereNom(ETUDIANT *tab_etu, int nbelements,int pos)
{
int i,j=nbelements;
i=pos; //recherchePosition(tab_etu,tab_etu[j-1].nom,tab_etu[j-1].prenom,nbelements);
j=nbelements;
while(j>i)
{
strcpy((tab_etu[j].nom),(tab_etu[j-1].nom));
strcpy((tab_etu[j].prenom),(tab_etu[j-1].prenom));
(tab_etu[j].med)=(tab_etu[j-1].med);
(tab_etu[j].final)=(tab_etu[j-1].final);
(tab_etu[j].tp)=(tab_etu[j-1].tp);
j--;
}
strcpy((tab_etu[i].nom),tab_etu[j-1].nom);
}
void affiche(ETUDIANT *tab, int nb_etu)
{
int j;
for(j=0;j<nb_etu;j++)
{
printf("\n%s",tab[j].nom);
printf("\n%s",tab[j].prenom);
printf("\n%f",tab[j].med);
printf("\n%f",tab[j].final);
printf("\n%f",tab[j].tp);
}
return 0;
}
voila merci encore :s
#include <string.h>
#include <stdlib.h>
#include <iostream>
#define MAXN 30
#define MAX_etu 150
typedef struct etudiant
{
char nom[MAXN];
char prenom[MAXN];
float med;
float final;
float tp;
}
ETUDIANT;
void initialise(ETUDIANT *tab_etu, int nb_etu);
int recherchePosition(ETUDIANT* tab_etu,char nom1[MAXN],char prenom1[MAXN], int nbelements);
int comparer(char* nom1, char* nom2);
void insereNom(ETUDIANT *tab_etu, int nbelements,int pos);
void affiche(ETUDIANT *tab, int nb_etu);
int _tmain(int argc, _TCHAR* argv[])
{
ETUDIANT tab[MAX_etu];
int nb_etu;
float note;
char reponse;
int i=0,j=0;
printf("entrez le nombre d'etudiants\n");
scanf("%d",&nb_etu);
fgetc(stdin);
for(i=0;i<nb_etu;i++)
{
initialise(tab,i);//fonction déja définie
j=recherchePosition(tab,tab[i].nom,tab[i].prenom,i);
printf("----------valeur retournee vaut-----%d--------------\n\n",j);
insereNom(tab,i+1, j);
}
affiche(tab,nb_etu);
}
int recherchePosition(ETUDIANT* tab_etu,char nom1[MAXN],char prenom1[MAXN], int nbelements)
{
int i;
int j=0;
for(i=0;i<=nbelements;i++)
{
if(strcmp((tab_etu[i].nom),nom1)<0)
{ j++;
}
}
return j;
}
void insereNom(ETUDIANT *tab_etu, int nbelements,int pos)
{
int i,j=nbelements;
i=pos; //recherchePosition(tab_etu,tab_etu[j-1].nom,tab_etu[j-1].prenom,nbelements);
j=nbelements;
while(j>i)
{
strcpy((tab_etu[j].nom),(tab_etu[j-1].nom));
strcpy((tab_etu[j].prenom),(tab_etu[j-1].prenom));
(tab_etu[j].med)=(tab_etu[j-1].med);
(tab_etu[j].final)=(tab_etu[j-1].final);
(tab_etu[j].tp)=(tab_etu[j-1].tp);
j--;
}
strcpy((tab_etu[i].nom),tab_etu[j-1].nom);
}
void affiche(ETUDIANT *tab, int nb_etu)
{
int j;
for(j=0;j<nb_etu;j++)
{
printf("\n%s",tab[j].nom);
printf("\n%s",tab[j].prenom);
printf("\n%f",tab[j].med);
printf("\n%f",tab[j].final);
printf("\n%f",tab[j].tp);
}
return 0;
}
voila merci encore :s