IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

fonction et tableau


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Par défaut fonction et tableau
    bonjour,j'ai un probleme pour entrer les elements d'un tableau et de mettre les conditions de validite (c'est a dire si je tape sur un caractere j'ai une boucle infinie )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    #include<stdio.h>
    #include <conio.h>
     void num_sold(int n,int c, long int tab[1][100]);
       int main (void){
       int n,c;
       long int tab[1][100];
      do{
     printf("saisir le nombre de jours qu'il a fait") ;
    scanf("%d",&n);
    printf("entrer le code de la chambre ");
    scanf("%d",&c);
    }while(n<0&&n<100);
    num_sold(n,c,tab);
    return 0;
    }
    num_sold(int n,int c,long int tab[1][100]){
    int i,j;
    for(i=0;i<1;i++){
    for(j=0;j<100;j++){
    tab[i][j]+=n*c;/*c'est la ou j'ai des problemes car les valeurs rendues sont les memes*/
    printf("le client numero:%d doit ",j+1);
    printf("%ld",tab[i][j]);
       }
      }
     }
    nb:ne pas utiliser les pointeurs.
    si vous pouvez implementer ce code n'hesitez pas a le faire.

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Première chose, évite le scanf pour utiliser conjointement fgets suivi de strtol pour la conversion de la saisie en entier.
    Ensuite que veux-tu faire exactent ?
    Si j'ai bien compris, tu veux saisir un nombre de jours plus grand que 0 et inférieur à 100.
    Tu peuix donc écrire ton test sous la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    faire
    {
    } tant que (non (n > 0 et n < 100));
    Maintenant, il existe des règles de négation
    (non (n > 0 et n < 100)) peut s'écrie (n <= 0 ou n >= 100).

    D'autre part, ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    num_sold(int n,int c,long int tab[1][100]){
    int i,j;
    for(i=0;i<1;i++){
    for(j=0;j<100;j++){
    tab[i][j]+=n*c;/*c'est la ou j'ai des problemes car les valeurs rendues sont les memes*/
    est bizarre, pourquoi faire un tableau de 1 ligne tab[1][100], tab[100] aurait suffi amplement.
    De même, cette boucle for(i = 0; i < 1; i++) ne sert strictement à rien, travaille directment avec la boucle interne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(j=0;j<100;j++)
    {
        tab[0][j]+=n*c;
    }
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,
    Citation Envoyé par Trap D
    (...)
    Maintenant, il existe des règles de négation
    (non (n > 0 et n < 100)) peut s'écrie (n <= 0 ou n >= 100).
    (...)
    En fait, c'est la pure et simple adaptation de la loi de morgan, qui nous vient de l'électronique:
    • inverse les entrées
    • inverse la sortie
    • inverse la porte

    tu obtiens une porte qui fait la meme chose

    Mais bon... c'est un détail
    (mais c'est pratique quand on envisage de simplifier des expressions complexes )
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Quand j'ai du mal avec les tant que, je remplace par un jusqu'à (algorithmiquement parlant bien entendu), pis j'inverse les conditions, c'est beaucoup plus simple.

  5. #5
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par Skyrunner
    Quand j'ai du mal avec les tant que, je remplace par un jusqu'à (algorithmiquement parlant bien entendu), pis j'inverse les conditions, c'est beaucoup plus simple.
    Aussi...
    Mais il faut avouer que pour la relecture, un test du genre de !(a!=10 && b!=18) reste moins lisible que le test (a==10 || b==18), qui revient pourtant exactement au même:
    inversion des entrées (a!= et b!= deviennent a== et b==)
    inversion de la sortie (!(a... devient ...vrai)
    invertion des portes (ici des opérateur logiques) || devient &&

    A noter que l'ensemble de l'algèbre boléenne s'applique parfaitement: que ce soit les produits remarquables ou la table de carnaugh, tu peux très bien t'en servir pour simplifier ton test ou ton équation
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  6. #6
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par koala01
    Aussi...
    Mais il faut avouer que pour la relecture, un test du genre de !(a!=10 && b!=18) reste moins lisible que le test (a==10 || b==18), qui revient pourtant exactement au même:
    Quand j'ai dis que j'inversai les conditions, je ne me contente pas de mettre un ! devant mais j'inverse les opérateurs (&& pour ||, != pour ==, < pour >=... et inversement).

Discussions similaires

  1. Fonction Deallocate tableau 4D
    Par azez dans le forum C
    Réponses: 23
    Dernier message: 19/04/2007, 16h44
  2. [VBA-E]paramètre fonction et tableau
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/01/2007, 09h56
  3. [Tableaux] fonction et tableau
    Par vacknov dans le forum Langage
    Réponses: 7
    Dernier message: 23/06/2006, 15h47
  4. Fonctions SQL - Tableau et type anyarray
    Par etiennegaloup dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 07/11/2005, 12h25
  5. PB fonction et Tableau
    Par T-B dans le forum Langage
    Réponses: 5
    Dernier message: 23/10/2005, 15h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo