Wednesday 4 January 2017

correction ETLD d'informatique1 (codes source)

Ex2:
#include <stdio.h>
#include <stdlib.h>
#define taille 20

int vect[taille];

int main()
{
   int i,N,indMax,indPairMax,indImpairMax,tmp,k,j;

   printf("\n Donner le nbr d'elements (<=%d)",taille);
   scanf("%d",&N);
   printf("\n Donner les elements un par un");
   for(i=0;i<N;i++){
     printf("\n Donner l'element n°%d: ",i+1);
     scanf("%d",&vect[i]);
   }

   printf("\n Avant tri paritaire:");
   for(i=0;i<N;i++){
     printf("\t%d",vect[i]);
   }

   indImpairMax=(N%2 ?N-1:N-2);
   indPairMax=(N%2 ?N-2:N-1);
   for(k=0;k<2;k++){
      indMax=(k?indPairMax:indImpairMax);
      for(i=k;i<=indMax-2;i+=2){
         for(j=i+2;j<=indMax;j+=2){
             if(vect[j]<vect[i]){tmp=vect[i];vect[i]=vect[j];vect[j]=tmp;}
         }
      }
    }

   printf("\n Apres tri paritaire:");
   for(i=0;i<N;i++){
     printf("\t%d",vect[i]);
   }
   return 0;
}

Exo3:
#include <stdio.h>
int main(){
  int i,N,vect[20];

  printf("\n Donner le nbr de chiffres (<=20)");
  scanf("%d",&N);
  printf("\n Donner les chiffres un par un");
  for(i=0;i<N;i++){
     printf("\n Donner le chiffre n°%d: ",i+1);
     scanf("%d",&vect[N-i-1]);
  }
  printf("\n Les nbr generes sont:");
  for(i=0;i<N;i++){
    if(vect[i]%2){
      printf("\n%d",vect[i]);
      if(i+1<=N-1)printf("\n%d",vect[i]+10*vect[i+1]);
      if(i+2<=N-1)printf("\n%d",vect[i]+10*vect[i+1]+100*vect[i+2]);
    }
  }
  return 0;
}