Académique Documents
Professionnel Documents
Culture Documents
h>
#include<string.h>
#define maxnotes 20
int taille=0;
typedef struct{
int jour;
char moins[20];
int annee;
}date;
typedef struct{
char nom[10];
char prenom[10];
date datedenaissance;
char formation[3];
char redoublant[10];
int groupetd;
float notes[maxnotes];
int nbnotes;
}fiche;
fiche lirefiche();
void ecrirefiche(fiche etudiant);
fiche ajoutenote(int n);
void moyenne(fiche etudiant);
int main()
{
char reponse;
int n;
fiche fiche1;
fiche1=lirefiche();
ecrirefiche(fiche1);
do{
printf("voulez vous d ajouter de notes (o/n)");
scanf("%c",&reponse);
printf("reponse= %c\n",&reponse);
} while((reponse!='o')&&(reponse!='n'));
if(reponse='o')
{
do{
printf("combien de note a ajouter: ");
scanf("%d",&n);
}while((n<0)||(n+taille>maxnotes));
taille+=n;
fiche1=ajoutenote(n);
moyenne(fiche1);
}
return 0;
}
fiche lirefiche()
{
fiche etudiant;
printf("taper le nom\n ");
scanf("%s",&etudiant.nom);
printf("taper le prenom\n ");
scanf("%s",&etudiant.prenom);
printf("entrez la date naissance de l etudiant\n ");
scanf("%d/%s/%d",&etudiant.datedenaissance.jour,&etudiant.datedenaissa
nce.moins,&etudiant.datedenaissance.annee);
do{
printf("selectioner la formation de l'etudiant\n "); /*saisir de la
formation*/
scanf("%s",&etudiant.formation);
}while((strlen(etudiant.formation)>2)||(strlen(etudiant.formation)<2));
printf("s'il est redoublant? [OUI/NON]\n ");
scanf("%s",&etudiant.redoublant);
printf("quel est le groupe de td\n ");
scanf("%d",&etudiant.groupetd);
return etudiant;
}
void ecrirefiche(fiche etudiant)
{
printf("nom et prenom %s %s\n",etudiant.nom,etudiant.prenom);
printf("date de naissace %d %s
%d\n",etudiant.datedenaissance.jour,etudiant.datedenaissance.moins,etudiant.da
tedenaissance.annee);
printf("formation %s\n",etudiant.formation);
printf("redoublant/non %s\n",etudiant.redoublant);
printf("groupe TD %d\n",etudiant.groupetd);
}
fiche ajoutenote(int n)
{
int i;
fiche etudiant;
for (i=0;i<n;i++)
{
printf("taper la note numero %d: ",i+1);
scanf("%f",&etudiant.notes[i]); // &(etudiant->notes[i]))
}
return etudiant;
}
int main()
{
charger();
somme(m);
monotonie(m);
trier(m);
return 0;
}
void charger()
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("saisir l element m[%d][%d]",i,j);
scanf("%d",&m[i][j]);
}
}
};
void somme(int m[n][n])
{
int sd1=0; /*somme de la diagonale 1*/
int sd2=0; /*somme de la diagonale 2*/
for (i=0;i<n;i++)
{
sd1+=m[i][i];
sd2+=m[i][n-i-1];
}
printf("la somme des elements de la 1er diagonale de la matrice m est
%d\n",sd1);
printf("la somme des elements de la 2eme diagonale de la matrice m est
%d\n",sd2);
}
void monotonie(int m[n][n])
{
int k=0; /* le concepte c'est de faire des soustraction entre 2
elements successives de la deuxieme diagonale et vice vers ca
par exemple une matrice est caree de dimension n*n d ou le nombre des
soustraction egale n-1 pour la diagonale
si la somme des resultats de soustraction egale (n-1) d ou la
monotonie de la diagonale*/
for(i=0;i<=(n-2);i++)
{
k+=(m[i+1][n-i-2])-(m[i][n-i-1]);
}
if((k)==n-1)
list *init() {
list *lliste = (list *) malloc(sizeof(*lliste));
element *Element = (element *) malloc(sizeof(*Element));
Element->val = NULL;
Element->next = NULL;
lliste->debut = NULL;
return lliste;
}
NV_element->val = valeur;
NV_element->next = lliste->debut;
lliste->debut = NV_element;
min = courant->val;
while (courant != NULL) {
if (courant->val<min) {
min=courant->val;
}
courant = courant->next;
}
return min;
}
int main() {
list *liste1;
int nvValeur,n,i;
liste1=init();
printf("Donner le nombre des elements a inserer ");
scanf("%d",&n);
for (i=0;i<n;i++) {
printf("saisir une valeur ");
scanf("%d",&nvValeur);
insert(liste1,nvValeur);
}
affiche(liste1);
printf("Le nombre des elements de la liste est %d",nbre_element(liste1));
printf("\n");
printf("La somme des elements de la liste est %d",somme(liste1));
printf("\n");
printf("Le plus petit element de la liste est %d",plusPetitVal(liste1));
return 0;
}