jekburn
Messages postés26Date d'inscriptionjeudi 11 novembre 2004StatutMembreDernière intervention29 octobre 2009
-
15 mai 2005 à 01:27
jp94470
Messages postés1Date d'inscriptionlundi 16 mai 2005StatutMembreDernière intervention16 mai 2005
-
16 mai 2005 à 21:04
#include <stdio.h>
#include <conio.h>
typedef struct{
int heure;
int minute;
int seconde;
}TEMPS;
main(){
TEMPS t,t1,t2,t3;
printf("Introduire le premier temps:\n");
t1=entree(t);
printf("\nIntroduire le deuxieme temps:\n");
t2=entree(t);
printf("\nDifférence entre les deux temps:\n");
post(t1,t2);
t3=diff(t1,t2);
printf("Les heures:%d %d %d\n",t1.heure,t2.heure,t3.heure);
printf("Les minutes:%d %d %d\n",t1.minute,t2.minute,t3.minute);
printf("Les secondes:%d %d %d\n",t1.seconde,t2.seconde,t3.seconde);
getch();
}
//Bonjour,
//Mon programme doit calculé la différence entre deux temps donnés: h, m, s
//En inversant les temps si le plus petit est rentré en premier.
//Malheureusement, il refuse d'inverser.
//Si le temps le plus grand est tapé en premier: genre: 17h45m16s et 15h30m25s
//il me donnera: 2h14m51s
//Par contre, si il est tapé en dernier: genre: 15h30m25s et 17h45m16s
// là, il me donnera: -3h-15m9s, au lieu de: 2h14m51s, parcequ'il n'inverse pas
// j'ai tout essayé à ma connaissance, mais rien ne marche
//merci de votre aide
struct biblio {
int numero;
char titre[40];
char auteur[30];
int date;
char edition[20];
}M[40],*pt;
int i=0,j,nb,b;
char tri,d;
struct biblio ;
fic=fopen("biblio.txt","r");
if(fic==NULL)
printf("erreur à l'ouverture du fichier");
else
{
while(!feof(fic))
{
fscanf(fic,"%d,%s,%s,%d,%s",&M[i].numero,&M[i].titre,&M[i].auteur,&M[i].date,&M[i].edition);
i++;
}
nb=i;
fclose(fic);
printf("dans quel ordre voullez vous trier?\n");
printf("tri par numero,tappez 1 \n");
printf("tri par titre,tappez 2 \n");
printf("tri par auteur, tappez 3 \n");
printf("tri par date,tappez 4 \n");
printf("tri par edition, tappez 5 \n");
tri=getch();
for(i=0;i<nb;i++)
{
for(j=i;j<nb;j++)
{
switch(tri)
{
case '1':
if(M[i].numero<M[j].numero)
{
d=M[j];
M[j]=M[i];
M[i]=d;
}
case '2':
if(strcmp(M[i].titre,M[j].titre)>0)
{
d=M[j];
M[j]=M[i];
M[i]=d;
}
case '3':
if(strcmp(M[i].auteur,M[j].auteur)>0)
{
d=M[j];
M[j]=M[i];
M[i]=d;
}
case '4':
if(M[i].date<M[j].date)
{
d=M[j];
M[j]=M[i];
M[i]=d;
}
case '5':
if(strcmp(M[i].edition,M[j].edition)>0)
{
d=M[j];
M[j]=M[i];
M[i]=d;
}
}
}
}
fic_tri=fopen("biblio.txt","w");
if(fic_tri==NULL)
printf("erreur l'ouverture");
else
{
for(i=0;i<nb;i++)
fprintf(fic_tri,"%d,%s,%s,%d,%s\n",M[i].numero,M[i].titre,M[i].auteur,M[i].date,M[i].edition);
}
}
return(0);
getch();
}
bonjour,
voila mon programme doit faire le titre dans un texte de type biblio.txt et j'ai un problème au niveau de d=M[j] et de M[i]=d, ca me met
Operands of = have illegal types 'char' and 'struct biblio'.lors de la compilation, si quelqu'un peut m'aider se serait sympa car la je ne trouve pas la solution
merci