Programmer en C

Tout ce qui se rapporte à l'informatique en général
Répondre
Avatar du membre
Gillou40
Administrateur
Administrateur
Messages : 697
Enregistré le : 20 juin 2010, 07:40
Localisation : Mont de Marsan
Contact :

Programmer en C

Message par Gillou40 »

Bonjour,

Je me remets tout doucement au C. (Non on ne rit pas!)

Du basique de chez basique, mais là je coince, ça commence mal.

Comme je sais qu'il y a des pointures ici (je ne dénoncerai personne), je leur soumets mon "pb":

Code : Tout sélectionner

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

int main(int argc, char *argv[])
{
    double Nombre1, Nombre2,resultat;
    int menu;

    printf("=== Menu ===\n\n");
    printf("1. Addition\n");
    printf("2. Soustraction\n");
    printf("3. Multiplication\n");
    printf("4. Division\n\n");
    printf("Votre choix ?");

    scanf("%d",&menu);

    printf("Nombre1:    ");
    scanf("%f",&Nombre1);
    printf("Nombre2:    ");
    scanf("%f",&Nombre2);

    switch  (menu)
    {

    case 1:
        {
        resultat=Nombre1+Nombre2;
        printf ("%f",resultat);
        }
    break;
    case 2:
        {
        resultat=Nombre1-Nombre2;
        printf ("%f",resultat);
        }
    break;
    case 3:
        {
        resultat=Nombre1*Nombre2;
        printf ("%f",resultat);
        }
    break;
    case 4:
        {
        if  (Nombre2==0)
                        {
                         printf("calcul interdit");
                         break;
                        }
        else
                        {
                        resultat=Nombre1/Nombre2;
                        printf ("%f",resultat);
                        }
         }
    break;
    default:
    break;

    }
    printf("\n\n\n");
    return 0;
}
Hé ouais, une sorte de calculatrice, mais j'ai dû merdouiller dans les déclarations, car le résultat sort à 1 ou 0

Merci de votre aide
Image
Avatar du membre
jip
Administrateur
Administrateur
Messages : 2607
Enregistré le : 22 février 2008, 21:00
Localisation : Toulouse
Contact :

Re : Programmer en C

Message par jip »

Bon déjà, si tu veux vraiment des "double", faudrait formater avec des "%lf" plutôt.

Pour les printf, ça doit quand même passer mais pour les scanf moins bon, car le format défini le type attendu derrière ....

Donc au minimum modifier :

Code : Tout sélectionner

printf("Nombre1:    ");
    scanf("%f",&Nombre1);
    printf("Nombre2:    ");
    scanf("%f",&Nombre2);
Par :

Code : Tout sélectionner

printf("Nombre1:    ");
    scanf("%lf",&Nombre1);
    printf("Nombre2:    ");
    scanf("%lf",&Nombre2);

ou alors si la simple précision te suffit utilise des "float" à la place des "double" et tu conserve le reste du code :

Code : Tout sélectionner

float Nombre1, Nombre2,resultat;
:wink:
Un synonyme, c'est un mot qu'on écrit pour remplacer celui dont on ne connait pas l'orthographe. (source inconnue). L'imagination est plus importante que le savoir. (Albert Einstein)

[align=center]Image[/align]

BoincLibristes, FreeTorrent, Ma brute
Avatar du membre
Gillou40
Administrateur
Administrateur
Messages : 697
Enregistré le : 20 juin 2010, 07:40
Localisation : Mont de Marsan
Contact :

Re : Programmer en C

Message par Gillou40 »

Merci Jip !

Pour les Float, j'avais déjà essayé, pas mieux.

Je vais suivre tes conseils.

En tout cas merci au roi de l'informajip !
Image
Avatar du membre
Gillou40
Administrateur
Administrateur
Messages : 697
Enregistré le : 20 juin 2010, 07:40
Localisation : Mont de Marsan
Contact :

Re : Programmer en C

Message par Gillou40 »

Pas mieux

1+1=1.875000

Comme le pouvoir d'achat !

Je vais chercher.
Image
Avatar du membre
jip
Administrateur
Administrateur
Messages : 2607
Enregistré le : 22 février 2008, 21:00
Localisation : Toulouse
Contact :

Re : Programmer en C

Message par jip »

Bon j'ai mis ton code complet sous code::blocks avec les modifs indiquées :

Code : Tout sélectionner

int main()
{
    double Nombre1, Nombre2,resultat;
    int menu;

    printf("=== Menu ===\n\n");
    printf("1. Addition\n");
    printf("2. Soustraction\n");
    printf("3. Multiplication\n");
    printf("4. Division\n\n");
    printf("Votre choix ?");

    scanf("%d",&menu);

    printf("Nombre1:    ");
    scanf("%lf",&Nombre1);
    printf("Nombre2:    ");
    scanf("%lf",&Nombre2);

    switch  (menu)
    {

    case 1:
        {
        resultat=Nombre1+Nombre2;
        printf ("%lf", resultat);
        }
    break;
    case 2:
        {
        resultat=Nombre1-Nombre2;
        printf("%lf",resultat);
        }
    break;
    case 3:
        {
        resultat=Nombre1*Nombre2;
        printf ("%lf",resultat);
        }
    break;
    case 4:
        {
        if  (Nombre2==0)
                        {
                         printf("calcul interdit");
                         break;
                        }
        else
                        {
                        resultat=Nombre1/Nombre2;
                        printf ("%lf",resultat);
                        }
         }
    break;
    default:
    break;

    }
    printf("\n\n\n");
    return 0;
}
et avec ça, j'ai les bonnes opérations.

1+1=2.00000
2.2-1.2=1.0000
1.11*3=3.33000
9.999/3.333=3.00000
Un synonyme, c'est un mot qu'on écrit pour remplacer celui dont on ne connait pas l'orthographe. (source inconnue). L'imagination est plus importante que le savoir. (Albert Einstein)

[align=center]Image[/align]

BoincLibristes, FreeTorrent, Ma brute
Avatar du membre
Gillou40
Administrateur
Administrateur
Messages : 697
Enregistré le : 20 juin 2010, 07:40
Localisation : Mont de Marsan
Contact :

Re : Programmer en C

Message par Gillou40 »

OK ça marche, j'ai dû faire un rebuild.

Merci Jip

Je vais continuer à programmer, c'est comme ça qu'on apprend !
Image
Avatar du membre
jip
Administrateur
Administrateur
Messages : 2607
Enregistré le : 22 février 2008, 21:00
Localisation : Toulouse
Contact :

Re : Programmer en C

Message par jip »

essaye code::blocks, ça te facilitera la vie pour commencer.

complétion de code, ça peut aider.

sinon, tu peux aussi passer au c++.

au départ c'est pas plus compliqué je trouve.

au minimum pour les affichages en console, tu passera par du "cin" ou "cout", c'est plus simple ...

pour les chaine de char, avec std::string.

etc ......
Un synonyme, c'est un mot qu'on écrit pour remplacer celui dont on ne connait pas l'orthographe. (source inconnue). L'imagination est plus importante que le savoir. (Albert Einstein)

[align=center]Image[/align]

BoincLibristes, FreeTorrent, Ma brute
Avatar du membre
jip
Administrateur
Administrateur
Messages : 2607
Enregistré le : 22 février 2008, 21:00
Localisation : Toulouse
Contact :

Re : Programmer en C

Message par jip »

tu peux aussi lire par là : http://libristes-forum.boinc-af.org/ind ... l#msg13770

y'avait déjà eu des discussion coté prog ...

:grin:
Un synonyme, c'est un mot qu'on écrit pour remplacer celui dont on ne connait pas l'orthographe. (source inconnue). L'imagination est plus importante que le savoir. (Albert Einstein)

[align=center]Image[/align]

BoincLibristes, FreeTorrent, Ma brute
Avatar du membre
Gillou40
Administrateur
Administrateur
Messages : 697
Enregistré le : 20 juin 2010, 07:40
Localisation : Mont de Marsan
Contact :

Re : Programmer en C

Message par Gillou40 »

Merci Jip,

J'ai commencé avec Code::blocks; c'est vrai que c'est plus simple.

Pour le C++ je vais regarder...
Image
Répondre