Aide probleme code C avec do...while

alors voila jai fait une fonction qui doit retourner le caracthere saisi si celui ci est ‘o’ ou ‘n’
et il se peut que j’arrive pas a faire a comprendre au while qu’il y a un ou dans sa condition quelqu’un peut m’aidez svp ^^
merci

#include <stdio.h>

unsigned char Fonction(char c);

unsigned char Fonction(char c)
{
printf(“saisissez votre caracthere\n”);
do
{
scanf("%c",&c);
}
while((c!=‘o’)||(c!=‘n’));

if((c=='o')||(c='O'))
{
	return('O');
}
else
{
	return('N');
}

}

void main()
{
unsigned char a,b;

b=Fonction(a);
printf("%c",b);

}
Edité le 03/01/2008 à 15:22

pas besoin de te balader avec des unsigned char pour cette fonction.
pas non plus besoin d’envoyer un caractère à la fonction Fonction puisque tu renvoie un caractère en fin de fonction.

Le problème vient de la condition de ton while qu’il faut traduire par faire…tant que.
Autre erreur, il manque un ‘=’ dans le if qui suit le while, ce qui a pour effet que la condition est toujours vrai.


char Fonction();

char Fonction()
{
    char c;
    printf("saisissez votre caractere\n");
    do
    {
        scanf("%c",&c);
    }while((c!='o') && (c!='n'));

    if((c=='o')||(c=='O'))
    {
        return 'O';
    }
    else
    {
        return 'N';
    }
}

int main()
{
    char a;

    a=Fonction();
    printf("%c",a);
    return 0;
}

donc comme tu le dis j’interpretais mal ma condition il faut donc mettre des ET a la place des OU
sinon merci d’avoir corriger mes petites erreurs, c’est vrai que j’ai encore un peu de mal avec les fonctions mais sa commence a rentré :slight_smile:

probleme resolu
merci jmgchouchou