Vous êtes sur la page 1sur 10

#include<stdio.

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;
}

void moyenne (fiche etudiant) {


int i;
float s;
for (i=0;i<taille;i++) {
s+=etudiant.notes[i];
}
printf("La moyenne est %f",s/taille);
//return s/taille;
}
#include<stdio.h>
#define n 4
int m[n][n]; /*petit exemple pour une matrice carré pour facilite le travail*/
int i,j;
void charger(void);
void somme(int m[n][n]);
void monotonie(int m[n][n]);
void trier(int m[n][n]);

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)

printf("la deuxieme diagonale forme une monotonie de longueur %d\n


",n);
else printf("la deuxieme diagonale ne forme pas une monotonie car k=%d
differente a %d\n ",k,n);
};
void trier(int m[n][n])
{
int aux;
for(i=0;i<n;i++)
{
for (j=i+1;j<n;j++)
{if ((m[i][i]>m[j][j]))
{
aux=m[i][i];
m[i][i]=m[j][j];
m[j][j]=aux;
}
}
{
for (int j=0;j<n;j++){
printf("| %d |",m[i][j]);
if (j==n-1) { printf("\n");}
}
}
}};
#include <stdio.h>
#include <stdlib.h>

typedef struct element {


int val;
element *next;
} element;

typedef struct list {


element *debut;
} list;

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;
}

void insert(list *lliste, int valeur) {


element *NV_element = (element *) malloc(sizeof(*NV_element));

NV_element->val = valeur;
NV_element->next = lliste->debut;
lliste->debut = NV_element;

void affiche(list *lliste) {


element *courant = lliste->debut;

while (courant != NULL) {


printf("%d ",courant->val);
courant = courant->next;
}
printf("\n");
}
int nbre_element(list *lliste) {
int i;
element *courant = lliste->debut;

while (courant != NULL) {


i++;
courant = courant->next;
}
return i;
}

int somme(list *lliste) {


int s;
element *courant = lliste->debut;

while (courant != NULL) {


s+=courant->val;
courant = courant->next;
}
return s;
}

int plusPetitVal(list *lliste) {


int min;
element *courant = lliste->debut;

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;
}

Vous aimerez peut-être aussi