programme en c
Répondre à la discussion
Affichage des résultats 1 à 16 sur 16

programme en c



  1. #1
    A4

    programme en c


    ------

    Bonjour,

    J'ai écrit ce programme en c, mais il ne fonctionne pas, je voulais savoir si l'un de vous pourrait m'aider ?


    Code:
    #include <stdafx.h>
    #include <math.h>
    #include <stdio.h>
    
    int additionSINT(short int n1,short int n2)
    	{
    		
    		return n1 + n2;
    	}
    int _tmain(int argc, _TCHAR* argv[])
    {
    	short int resultatAdditionSINT=0,n1=0,n2=0;
    	printf("Entrer le nombre1 : ");
    	scanf("%d",&n1);
    	printf("Entrer le nombre2 : ");
    	scanf("%d",&n2);
    
    	resultatAdditionSINT=additionSINT(n1,n2);
    
    if(resultatAdditionSINT**>32767)
    {
    			printf("débordement positif");
    }
    	
    else
    {
    	if(resultatAdditionSINT<-32767)
    	{
    			printf("débordement negatif");
    	}
    	else
    	{
    			printf("Le résultat est :"	return resultatAdditionSINT);
    	}
    }
    	return 0;
    }
    merci

    -----
    Dernière modification par JPL ; 24/10/2014 à 17h07. Motif: Ajout de la balise Code (#) pour garder l'indentation

  2. #2
    Chanur

    Re : programme en c

    Bonjour,

    Déjà, avant de parler de le faire fonctionner, il faudrait qu'il puisse se compiler ...

    Les lignes
    Code:
    if(resultatAdditionSINT**>32767)
    et
    Code:
    printf("Le résultat est :"  return resultatAdditionSINT);
    n'ont aucun sens.

    Dans la première je ne vois pas ce que peut signifier **>
    Dans la deuxième, qu'est-ce qu'un return vient faire dans les arguments de printf ? (arguments qui devraient, de toute façon, être séparés par des virgules)

    D'autre part, dans les scanf, c'est %hd pour un short.
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

  3. #3
    Bluedeep

    Re : programme en c

    Bonjour

    Merci d'utiliser les balises "CODE" car là c'est absolument illisible.

    Et de plus, on ne voit pas le pourquoi des comparaisons à 32767 d'une variable dont la valeur ne peut pas dépasser cela (par définition, puisque en short int, donc 16 bits signé, ca va de -32768 à +32767) : le test sera toujours négatif.

    Sans même parler des erreurs de syntaxes, mais ça a été mentionné au dessus.
    Dernière modification par Bluedeep ; 24/10/2014 à 07h25.

  4. #4
    bisou10

    Re : programme en c

    Juste une question à OP: pourquoi tu n'essayes pas simplement de compiler et de nous donner les erreurs ? Une pauvre ligne de commande avec gcc (ou ce que tu veux) et hop !

    Est ce que FS sert majoritairement à des étudiants mal dégrossis qui postent n'imp pour se forcer à rendre un tp important après une cuite. C'est dommage !

    Le bon point pour toi c'est que tu es poli !

  5. A voir en vidéo sur Futura
  6. #5
    Bluedeep

    Re : programme en c

    Citation Envoyé par bisou10 Voir le message
    J
    Est ce que FS sert majoritairement à des étudiants mal dégrossis qui postent n'imp pour se forcer à rendre un tp important après une cuite. C'est dommage !
    Des fois on se demande ....

  7. #6
    A4

    Re : programme en c

    Bonjour,

    merci de votre aide, mon programme fonctionne maintenant grâce à vous

    Si le temps vous le permet, j'aimerais savoir si quelqu'un pourrait m'aider pour cet autre programme que j'ai fait qui ne fonctionne pas non plus..

    Code:
    #include "stdafx.h"
    #include "stdio.h"
    #include "math.h"
    
    float epsilonf(float eps, float n)
    {
    	
    		while(1+eps>1)
    		{
    			eps=eps/2;
    			n++;
    		}
    	
    		eps = eps*2;
    	    n=n-1;
         return eps,n;
    	 
    }
    
    double epsilonD(double eps,double n)
    {
    		while(1+eps>1)
    		{
    			eps=eps/2;
    			n++;
    		}
    	eps = eps*2;
    	n=n-1;
    
    	return eps,n;
    
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int choix=0;
    	printf("1-float ou 2-double? : ");
    	scanf_s("%d,&choix");
    	
    	if(choix==1)
    	{	
    		float epsilon,eps=1;
    		float n=0;
    		epsilon=epsilonf(eps,n);
    		printf("L'epsilon est de : %f",eps);
    		printf("et le nombre de chiffre binaire est de : %d",n);
    	}
    	else
    	{
    		double epsilon,eps=1;
    		double n=0;
    		epsilon=epsilonD(eps,n);
    		printf("L'epsilon est de : %f",eps);
    		printf("et le nombre de chiffre binaire est de : %d",n);
    	}
    	return 0;
    
    
    }
    merci
    Dernière modification par Jack ; 25/10/2014 à 22h16. Motif: modification balises code

  8. #7
    whoami

    Re : programme en c

    Bonjour,

    Tant que nous y sommes, mets-nous tout de suite tous tes programmes...

    Et précision : moi, quand je demande de l'aide sur un programme, je commence par indiquer ce qu'il doit faire, ainsi que les éventuelles restrictions (droit aux fonctions standards ? droit d'écrire des fonctions personnelles...), et j'y ajoute les erreurs générées par le compilateur.
    Si par hasard la compilation a donné un programme exécutable, j'indique le comportement du programme lors de l'exécution, et donne ce qui ne va pas.

    Bref, tu n'as même pas fait le strict minimum, et ça ne donne pas du tout l'envie de t'aider.

  9. #8
    A4

    Re : programme en c

    Bonjour,

    c'est mon dernier programme pour le moment qui ne fonctionne pas.

    Le programme est supposer me donner la valeur de l'epsilon et son erreur avec des float ou des double.

    Ce qui ne marche pas c'est qu'après avoir ecrit 1-float ou 2-double, il m'affiche cela : Exception de première chance à 0x0F25D745 (msvcr110d.dll) dans 2.exe*: 0xC0000005*: Violation d'accès lors de l'écriture à l'emplacement 0x00000000.

    Est-ce que quelqu'un peut m'aider ?
    merci

  10. #9
    Jack
    Modérateur

    Re : programme en c

    Pour les balises code, il faut les encadrer par des crochets: [ et ]

  11. #10
    Jack
    Modérateur

    Re : programme en c

    Ce qui ne marche pas c'est qu'après avoir ecrit 1-float ou 2-double, il m'affiche cela : Exception de première chance à 0x0F25D745 (msvcr110d.dll) dans 2.exe*: 0xC0000005*: Violation d'accès lors de l'écriture à l'emplacement 0x00000000.
    Ca serait bien de donner la ligne qui provoque ce bug. Tu ne peux pas utiliser un debugger?

  12. #11
    JPL
    Responsable des forums

    Re : programme en c

    Citation Envoyé par Jack Voir le message
    Pour les balises code, il faut les encadrer par des crochets: [ et ]
    Plus précisément elles s'écrivent ainsi : [code] ..... [/code] sans espace.

    Ou tout simplement tu utilises # dans la barre d'outils du mode avancé.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  13. #12
    A4

    Re : programme en c

    merci de l'info pour les balises

    mais c'est une boîte qui affiche ce message quand je démarre le debugueur et qui me demande d'arrêter ou de continuer, mais quand je clique continuer, la même boîte s'ouvre alors je fais arrêter et ça arrête...

    je ne sais pas du tout quoi faire..

  14. #13
    Chanur

    Re : programme en c

    L'erreur vient du scanf_s : tu as mal placé le guillement " : ton deuxième argument se retrouve DANS la chaîne de caractères de format. Du coup, scanf_s n'a pas de deuxième argument, alors il va lire ce qui suit sur la pile, et l'interprète comme un pointeur vers un int. Et il essaie d'écrire ce que tu as saisi à l'adresse 0.
    Et il n'y arrive pas.

    Mais en plus, il faudrait que tu règles le niveau de warning de ton compilateur (Visual Studio, j'imagine, vu le code). Mets au moins le niveau 3. (ou 4 si les includes standard ne te donnent pas une tripotée de warnings )

    Parce que là, tu as des erreurs que le compilateur peut indiquer, mais qui apparaissent comme des warnings :

    - pour les lignes :"return eps,n;", gcc m'indique : "l'opérande à gauche de la virgule n'a pas d'effet"
    - pour les printf, "format ‘%d’ expects a matching ‘int *’ argument" (*)
    - et pour epsilon : "variable ‘epsilon’ set but not used "

    (*) Mon gcc est rigolo : il donne certains messages en français et d'autres en anglais. C'est suivant qu'il est de bonne humeur ou pas, je crois.
    Dernière modification par Chanur ; 26/10/2014 à 02h07.
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

  15. #14
    A4

    Re : programme en c

    Merci beaucoup

  16. #15
    pravin0123

    Re : programme en c

    prefect programming forum...thank you!! please go in the same manner with java programs to.

  17. #16
    Jack
    Modérateur

    Re : programme en c

    Citation Envoyé par pravin0123 Voir le message
    prefect programming forum...thank you!! please go in the same manner with java programs to.
    Encore une fois, futura est un forum francophone. L'usage de la langue française est donc obligatoire.

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/06/2014, 19h44
  2. programme qui lance un autre programme
    Par invite01c3c114 dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 10/02/2011, 12h26
  3. comment utiliser les résultats d'un programme fortran dans un autre programme
    Par invitedb78a3a3 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 30/09/2010, 19h21
  4. programme
    Par invite57e51427 dans le forum Logiciel - Software - Open Source
    Réponses: 11
    Dernier message: 16/01/2008, 22h28
  5. Programme de la Spé PC
    Par invitea228f706 dans le forum Physique
    Réponses: 2
    Dernier message: 18/08/2007, 13h56