-1

Je dois imprimer un arbre de Noël, voici le code pour le coffre: «Pourquoi ai-je un avertissement: déclaration sans effet [valeur -Wunused]

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

int main() { 

    int j; 
    int cspaziodx,cspaziosx,cltroncoo; 
    float cltronco,larghezza; 

    printf ("ins larghezza"); 
    scanf ("%f",&larghezza); 

    for (j=1;j<=(ceil(larghezza/10));j++) { 

    cltronco = roundf(larghezza/4); 
    cltroncoo = cltronco; 
    if (cltroncoo%2==0) {(cltroncoo == cltroncoo + 1);} 
    cspaziodx = ((larghezza - cltroncoo)/2); 
    cspaziosx = ((larghezza - cltroncoo)/2); 

      while (cspaziodx > 0) 
       { 
       printf(" "); 
       cspaziodx = cspaziodx - 1; 
       } 
       while (cltroncoo > 0) 
        { 
        printf ("|"); 
        cltroncoo = cltroncoo - 1; 
        } 

        while (cspaziodx > 0) 
         { 
         printf(" "); 
         cspaziosx = cspaziosx - 1; 
         }     

    printf ("\n"); 

    } 

    return 0; 
    } 

»

et l'erreur est dans cette ligne if (cltroncoo%2==0) {(cltroncoo == cltroncoo + 1);} pourquoi ne fonctionne pas?

+2

'==' est une comparaison, pas une affectation; simplement comparer deux valeurs n'a aucun effet :-) – pmg

Répondre

1
if (cltroncoo%2==0) {      // comapre 
    (cltroncoo == cltroncoo + 1);   // again compare ?? 
} 

Dans le corps de if vous utilisez == (va juste valeur comparer les deux), peut-être vous l'intention d'utiliser =opérateur d'affectation pour modifier la valeur de la variable.

(cltroncoo =cltroncoo + 1); 
+0

waaah je t'aime <3 <3 –

2

Le problème est avec

(cltroncoo == cltroncoo + 1) 

qui utilise l'opérateur de comparaison ==. Peut-être ce que vous vouliez dire est

(cltroncoo = cltroncoo + 1) 

où nous utilisons l'opérateur d'affectation =.

Juste pour ajouter un peu de clarté, pour l'opérateur d'égalité, ==, selon C11 spécifications, chapitre §6.5.9,

[...] Chacun des opérateurs cède 1 si la relation spécifiée est vrai et 0 si c'est faux. Le résultat est de type int. Pour toute paire d'opérandes , exactement l'une des relations est vraie.

Maintenant, dans votre cas, vous avez manqué d'utiliser le résultat , de sorte que vos cris du compilateur. En outre, FWIW, au lieu de int main(), vous devez utiliser int main (void), atleast.