Laboratoire 1 - Programmation C : Entrée/Sortie et Applications Simples

Tâche 1

Code source

#include <stdio.h>

int main()
{
    printf(" O \n");
    printf("<H>\n");
    printf("I I\n");

    return 0;
}

#include <stdio.h>

int main()
{
    printf(" O        O \n");
    printf("<H>      <H>\n");
    printf("I I      I I\n");

    return 0;
}

#include <stdio.h>

int main()
{
    printf(" O \n");
    printf("<H>\n");
    printf("I I\n");
    printf(" O \n");
    printf("<H>\n");
    printf("I I\n");

    return 0;
}

Résultat d'exécution

Tâche 2

Code source

#include <stdio.h>

int main()
{
    double side1, side2, side3;
    scanf("%lf%lf%lf", &side1, &side2, &side3);
    if (side1 + side2 > side3 && side1 + side3 > side2 && side2 + side3 > side1)
        printf("Peut former un triangle\n");
    else
        printf("Ne peut pas former un triangle\n");

    return 0;
}

Résultat d'exécution

Tâche 3

Code source

#include <stdio.h>

int main()
{
    char reponse1, reponse2;
    printf("Avez-vous bien révisé avant chaque cours et révisé après ? (entrez y ou Y pour oui, n ou N pour non) : ");
    reponse1 = getchar();
    getchar();
    printf("\nAvez-vous pratiqué en codant ? (entrez y ou Y pour oui, n ou N pour non) : ");
    reponse2 = getchar();
    if ((reponse1 == 'y' || reponse1 == 'Y') && (reponse2 == 'y' || reponse2 == 'Y'))
        printf("\nRome ne s'est pas faite en un jour, continuez ainsi :)\n");
    else
        printf("\nRome ne s'est pas détruite en un jour, construisons ensemble\n");
    return 0;
}

Explication

Le getchar() à la ligne 7 permet de consommer le caractère de retour à la ligne entré lors de la réponse à la première question. Si on supprimait cete ligne, le getchar() suivant lirait ce retour à la ligne et assignsrait '\n' à reponse2, rendant la deuxième question invalide.

Tâche 4

Code source

#include <stdio.h>

int main()
{
    double val1, val2;
    char car1, car2, car3;
    int nb1, nb2, nb3;
    scanf("%d%d%d", &nb1, &nb2, &nb3);
    printf("nb1 = %d, nb2 = %d, nb3 = %d\n", nb1, nb2, nb3);
    scanf("%c%c%c", &car1, &car2, &car3);
    printf("car1 = %c, car2 = %c, car3 = %c\n", car1, car2, car3);
    scanf("%lf,%lf", &val1, &val2);
    printf("val1 = %f, val2 = %lf\n", val1, val2);
    return 0;
}

Résultat d'exécusion

Tâche 5

Code source

#include <stdio.h>

int main()
{
    int annees;
    double secondes = 1000000000.0;
    annees = (int)(secondes / 60.0 / 60.0 / 24.0 / 365.0 + 0.5);
    printf("1 milliard de secondes équivaut à environ %d ans\n", annees);
    return 0;
}

Résultat d'exécution

Tâche 6

Code source

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

int main()
{
    double base, resultat;
    while (scanf("%lf", &base) != EOF)
    {
        resultat = pow(base, 365);
        printf("%.2f à la puissance 365 : %.2f\n", base, resultat);
        printf("\n");
    }
    return 0;
}

Résultat d'exécution

Tâche 7

Code source

#include <stdio.h>

int main()
{
    double celsius = 0.0, fahrenheit = 0.0;
    while (scanf("%lf", &celsius) != EOF)
    {
        fahrenheit = (celsius * 9.0 / 5.0) + 32.0;
        printf("Pour Celsius c = %.2lf, Fahrenheit f = %.2lf\n\n", celsius, fahrenheit);
    }
    return 0;
}

Résultat d'exécusion

Tâche 8

Code source

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

int main()
{
    int coteA, coteB, coteC;
    double semiPerim, surface;
    while (scanf("%d %d %d", &coteA, &coteB, &coteC) != EOF)
    {
        semiPerim = ((double)(coteA + coteB + coteC)) / 2.0;
        surface = sqrt(semiPerim * (semiPerim - coteA) * (semiPerim - coteB) * (semiPerim - coteC));
        printf("coteA = %d, coteB = %d, coteC = %d, surface = %.3lf\n\n", coteA, coteB, coteC, surface);
    }
    return 0;
}

Résultat d'exécution

Étiquettes: C Langage-C programmation scanf printf

Publié le 14 juin à 18h09