Page 1 sur 1

Programmer en C

Posté : 18 juin 2011, 10:10
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

Re : Programmer en C

Posté : 18 juin 2011, 11:06
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:

Re : Programmer en C

Posté : 18 juin 2011, 11:11
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 !

Re : Programmer en C

Posté : 18 juin 2011, 11:16
par Gillou40
Pas mieux

1+1=1.875000

Comme le pouvoir d'achat !

Je vais chercher.

Re : Programmer en C

Posté : 18 juin 2011, 11:26
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

Re : Programmer en C

Posté : 18 juin 2011, 12:16
par Gillou40
OK ça marche, j'ai dû faire un rebuild.

Merci Jip

Je vais continuer à programmer, c'est comme ça qu'on apprend !

Re : Programmer en C

Posté : 18 juin 2011, 12:59
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 ......

Re : Programmer en C

Posté : 18 juin 2011, 13:02
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:

Re : Programmer en C

Posté : 18 juin 2011, 14:01
par Gillou40
Merci Jip,

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

Pour le C++ je vais regarder...