Probleme de carré noir devant un résultat [Résolu]

Messages postés
26
Date d'inscription
jeudi 11 novembre 2004
Dernière intervention
29 octobre 2009
- - Dernière réponse : jekburn
Messages postés
26
Date d'inscription
jeudi 11 novembre 2004
Dernière intervention
29 octobre 2009
- 5 janv. 2005 à 14:29
Bonsoir je souhaiterais savoir si possible, si vous savez comment faire pour enlever un carré noir devant le résultat de mon programme.
merci

#include<stdio.h>
#include<string.h>


int main(){


char ch[255];
int i=0;
int n,reste;


printf("Rentrer un nombre:");
scanf("%d",&n);
while(n>0)
{
reste=n%16;
ch[i]=reste+48;
if(reste==10) ch[i]='a';
if(reste==11) ch[i]='b';
if(reste==12) ch[i]='c';
if(reste==13) ch[i]='d';
if(reste==14) ch[i]='e';
if(reste==15) ch[i]='f';
n=n/16;
i++;
}
for (i=strlen(ch);i>=0;i--)
{
putchar(ch[i]);
}
}
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
108
3
Merci
Ah mon avis, cela vient de :



for (i=strlen(ch);i>=0;i--)
putchar(ch[i]);



Essaye avec :


for (i=strlen(ch)-1;i>=0;i--)
putchar(ch[i]);



DarK Sidious

[Administrateur et responsable VB/API du site ProgOtoP]

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
Messages postés
232
Date d'inscription
vendredi 9 janvier 2004
Dernière intervention
8 janvier 2005
0
Merci
salut,



n'oublie pas que les chaines de caracteres sont AZT (a zero terminal)

Il faut mettre un 0 en fin de chaine :



ch[i] = '\0';

/* for (i=strlen(ch);i>=0;i--) */

/* { */

/* putchar(ch[i]); */

/* } */

puts(ch);
Commenter la réponse de plus_plus_fab
Messages postés
26
Date d'inscription
jeudi 11 novembre 2004
Dernière intervention
29 octobre 2009
0
Merci
Rebonsoir j'ai suivi tes conseils mais maintenant il me met un double résultat, une fois a l'endroit, une fois à l'envers et il y a toujours le carré noir, j'ai tout essayé sauf les bonnes solutions...

#include<stdio.h>
#include<string.h>


int main(){


char ch[255];
int i=0;
int n,reste;


printf("Rentrer un nombre:");
scanf("%d",&n);
while(n>0)
{
reste=n%16;
ch[i]=reste+48;
if(reste==10) ch[i]='a';
if(reste==11) ch[i]='b';
if(reste==12) ch[i]='c';
if(reste==13) ch[i]='d';
if(reste==14) ch[i]='e';
if(reste==15) ch[i]='f';
n=n/16;
i++;
}
ch[i]='\0';
for (i=strlen(ch);i>=0;i--)
{
putchar(ch[i]);
}
puts(ch);
}
Commenter la réponse de jekburn
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
108
0
Merci
Normal, ton putchar l'écrit dans le bon sens, alors que le puts l'écrit
dans le sens du tableau, donc à l'envers pour le résultat que tu vuex !



Tape plutôt ceci :



#include<stdio.h>
#include<string.h>


int main(){


char ch[255];
int i=0;
int n,reste;


printf("Rentrer un nombre:");
scanf("%d",&n);
while(n>0)
{
reste=n%16;
ch[i]=reste+48;
if(reste==10) ch[i]='a';
if(reste==11) ch[i]='b';
if(reste==12) ch[i]='c';
if(reste==13) ch[i]='d';
if(reste==14) ch[i]='e';
if(reste==15) ch[i]='f';
n=n/16;
i++;
}
ch[i]='\0';
for (i=strlen(ch);i>=0;i--)
putchar(ch[i]);
}

DarK Sidious
Commenter la réponse de cs_DARKSIDIOUS
Messages postés
232
Date d'inscription
vendredi 9 janvier 2004
Dernière intervention
8 janvier 2005
0
Merci
a oué, j'avais pas vu que tu faisais du verlan :)

ch[i]='\0';
for (i=strlen(ch)-1;i>=0;i--)
putchar(ch[i]);
Commenter la réponse de plus_plus_fab
Messages postés
26
Date d'inscription
jeudi 11 novembre 2004
Dernière intervention
29 octobre 2009
0
Merci
Bonjour,
J'ai tapé exactement le meme programme que Darksidious mais j'ai toujours ce maudit carré noir.Par exemple je veux convertir 1000 en hexa, ça me donne "
3e8 ", la valeur est bien inversée mais quoi que je fasse, il y a toujours ce carré noir devant par contre ci je n'inverse pas le résultat le carré noir disparait...

Please help !
Commenter la réponse de jekburn
Messages postés
26
Date d'inscription
jeudi 11 novembre 2004
Dernière intervention
29 octobre 2009
0
Merci
Merci beaucoup.
Ca marche.
Commenter la réponse de jekburn

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.