Get Adobe Flash player
/* **********************************/
/* Conversion de Binaire -> Base 10 */
/* **********************************/

#include <stdio.h>
#include <stdlib.h>

int entier(int);
int puissance (int, int);

int main ()
{
    int n=0;
    printf("Saisir nombre binaire : ");
    scanf("%d", &n);
    printf("En base 10 : %d\n", entier(n));

    return EXIT_SUCCESS;
}

int entier(int n)
{
    int i;
    int longueur = 1;
    int res=0;
    int modulo;
    i=0;

    while (n !=0)
    {
        modulo = n%10;
        if (modulo)
        {
            res = res + (modulo*puissance(2,i));
        }
        n = n/10;
        i++;
    }
    printf("\n");

    return res;
}

int puissance (int x, int n)
{
    int res = 1;
    int i;
    for(i=0; i<n; i++)
    {
        res = res*x;
    }
    return res;
}

 

#include <stdio.h>
#include <stdlib.h>

#define N 15

int recherche_dicho(int[], int, int , int);

int main()
{
    int tab[N]={4,7,10,12,18,27,28,29,40,50,65,66,67,78,90};
    int saisie;
    int pos;

    printf("Entrez une valeur a rechercher : ");
    scanf("%d", &saisie);

    pos = recherche_dicho(tab,0, N-1, saisie);

    if (pos == -1)
    {
        printf ("Pas trouve\n");
    }
    else
    {
         printf("Trouve case : %d \n", pos);
    }

    return EXIT_SUCCESS;
}


int recherche_dicho(int tab[], int debut, int fin, int val)
{
    int milieu;

    while(debut<=fin)
    {
        milieu = (debut + fin) / 2;

        if (tab[milieu] == val)
        {
            return milieu;
        }
        else if (val < tab[milieu])
        {
            fin = milieu - 1;
        }
        else
        {
            debut = milieu + 1;
        }
    }
    return -1;
}

 

/* **********************************************************************/
/* Conversion de Entier -> Binaire avec affichage à la volée en chariot */
/* **********************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int binaire(int);
double arrondi_superieur(double);
int puissance(int, int);

int main ()
{
    int n=0;
    printf("Saisir un nombre entier : ");
    scanf("%d", &n);
    binaire(n);
    return EXIT_SUCCESS;
}

int binaire(int n)
{
    int i;
    int j;
    int bit = arrondi_superieur(log(n+1)/log(2)); /* <=> ceil */
    int q=n;
    int r=0;
    int res=0;

    printf("\nNombre de bits necessaires : %d\n", bit);
    printf("En binaire : \n");
    for (i=0; i<bit; i++)
    {
        r=n%2;
        q=q/2;
        n=q;

        /* On remplace "res=res+(r*puissance(10,i));" par un affichage à la volée. */
        /* Le retour chariot inverse l'ordre.                                      */
        for(j=bit-i; j>0 ; j=j-1)
        {
            if (bit-i==bit)
            {
                printf("%d",r);
            }
            else
            {
                if (j==bit-i)
                {
                    printf("\r");
                }
                printf("%d",r);
            }
        }

    }
    return res;
}

double arrondi_superieur(double x)
{
	int partieEntiere = x;

	if (x<0)
	{
	    return partieEntiere;
	}
	if ((double)partieEntiere == x)
	{
	    return x;
	}
	return partieEntiere + 1;
}


int puissance(int x, int n)
{
    int res = 1;
    int i;
    for(i=0; i<n; i++)
    {
        res = res*x;
    }
    return res;
}

 

/* *********************************/
/* Conversion de Entier -> Binaire */
/* *********************************/

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int binaire(int);
double arrondi_superieur(double);
int puissance(int, int);

int main ()
{
    int n=0;
    printf("Saisir nombre entier : ");
    scanf("%d", &n);
    printf("En binaire : %d\n", binaire(n));
    return EXIT_SUCCESS;
}

int binaire(int n)
{
    int i;
    int bit = arrondi_superieur(log(n+1)/log(2)); /* <=> ceil */
    int q=n;
    int r=0;
    int res=0;

    printf("Nombre de bits necessaires : %d\n", bit);

    for (i=0; i<bit; i++)
    {
        r=n%2;
        q=q/2;
        n=q;
        res=res+(r*puissance(10,i));
    }
    return res;
}

double arrondi_superieur(double x)
{
	int partieEntiere = x;

	if (x<0)
	{
	    return partieEntiere;
	}

	if ((double)partieEntiere == x)
	{
	    return x;
	}
	return partieEntiere + 1;
}

int puissance(int x, int n)
{
    int res = 1;
    int i;
    for(i=0; i<n; i++)
    {
        res = res*x;
    }
    return res;
}

 

$
Saisir nombre entier : 10
Nombre de bits necessaires : 4
En binaire : 1010

 

#include <stdio.h>
#include <stdlib.h>

#define EGAL 0
#define SUP 1
#define INF -1

struct date_s
{
    int jour;
    int mois;
    int annee;
};
typedef struct date_s date_t;

int date_cmp(date_t,date_t);
date_t demander_date();
void afficher_date(date_t);

int main ()
{
    date_t date1;
    date_t date2;
    int res;

    printf("Saisir 1ere date : \n");
    date1 = demander_date();

	printf("1ere date : ");
	afficher_date(date1);
	printf("\n");

    printf("Saisir 2eme date : \n");
    date2 = demander_date();

	printf("2eme date : ");
	afficher_date(date2);
	printf("\n");

    res = date_cmp(date1, date2);
    if(EGAL==res)
    {
        afficher_date(date1);
        printf(" est la meme date que ");
        afficher_date(date2);
        printf("\n");
    }
    else if(INF==res)
    {
        afficher_date(date1);
        printf(" est avant ");
        afficher_date(date2);
        printf("\n");
    }
    else
    {
        afficher_date(date1);
        printf(" est apres ");
        afficher_date(date2);
        printf("\n");
    }

    return EXIT_SUCCESS;
}

int date_cmp(date_t d1, date_t d2)
{
    int mod_a1 = 10000 * d1.annee;
    int mod_m1 = 100 * d1.mois;
    int concat_d1 = d1.jour + mod_a1 + mod_m1;

    int mod_a2 = 10000 * d2.annee;
    int mod_m2 = 100 * d2.mois;
    int concat_d2 = d2.jour + mod_a2 + mod_m2;

    if (concat_d1 == concat_d2)
    {
        return EGAL;
    }
    if (concat_d1 < concat_d2)
    {
        return (INF);
    }
    return SUP;
}

date_t demander_date()
{
    date_t date;

    printf("Jour : ");
    scanf("%d", &(date.jour));
    printf("Mois : ");
    scanf("%d", &(date.mois));
    printf("Annee : ");
    scanf("%d", &(date.annee));

    return date;
}

void afficher_date(date_t date)
{
    printf("%d/%d/%d", date.jour, date.mois, date.annee);
}