Array Proleme - C - Programmation
Marsh Posté le 11-06-2008 à 16:47:05
"PORT[12]" et "Pass[12]" ok, mais de quel type ? Et pourquoi "12" ?
Dans ta boucle for, d'où sort le 17 ?
C'est pas génant de parcourir PORT jusqu'à 17 valeurs quand ce tableau n'en contient que 12 ?
(Hint : les magic numbers, çaÿ mal)
De plus, y a pas comme un problème entre "addresse" et "adresse" ?
Marsh Posté le 11-06-2008 à 16:53:23
Ok c est juste que j ecrivais de nouveau le programm sans copier de mon programme nous pouvons reduire les array a 4. que puije faire pour resoudre mon Probleme. C est tres important pour moi
Marsh Posté le 11-06-2008 à 16:54:10
Eh bien ton problème, en dehors du fait que ton programme est truffé de fautes et qu'il est illisible, c'est que tu confonds "=" avec "==".
Marsh Posté le 11-06-2008 à 17:00:47
c est sous l effet dela rapitide que j ai commis ces faute sinon il fonctione chez moi et je n ai que la premiere lette (R) et j aimerais avoir Ra3
Marsh Posté le 11-06-2008 à 17:02:52
printf("RA3" );
en une ligne
Marsh Posté le 11-06-2008 à 17:04:12
Donc si je résume, tu as recopié à la main comme un malpropre un code foireux, parce que tu es pressé, au lieu de faire un copier-coller. J'ai bon ?
À priori c'est juste ton type de retour qui n'est pas bon, tu ne renvoies qu'un char donc tu n'as qu'un caractère. Mais vu le bordel que c'est depuis tout à l'heure, j'voudrais être sûr que t'as pas commis d'autres erreurs.
Fais un copier-coller de ton code qu'on y voie plus clair.
Marsh Posté le 11-06-2008 à 17:15:53
je taravaille sur mon Laptop qui n est pas connecter a internet et je n ai pas de USB pour copier. voici le code sans faute
char adresse= 0x45;
char PORT[4]={'0x12','0x14','0x45','0x52'}
char Pass[4]={'RA1','Ra2','RA3','Ra4'}
char trouver( char addresse)
{
int i=0;
int a=0;
for (i=0;i<3;i++)
{
if(Port[i]=adresse)
{
a=i;
}
}
return Pass[a];
}
Marsh Posté le 11-06-2008 à 17:22:25
et ca compile ca
Marsh Posté le 11-06-2008 à 17:23:05
S'il est recopié sans faute, alors toutes mes remarques ci-dessus sont valides, ainsi que plusieurs autres :
Marsh Posté le 11-06-2008 à 17:25:11
mIRROR a écrit : et ca compile ca |
Surement pas.
Juste pour le fun :
$ gcc -Wall taiste.c |
Marsh Posté le 11-06-2008 à 17:40:04
Elmoricq a écrit : |
je sais
mais j ai encore du mal a comprendre quelques trucs
si je fous
Code :
|
je me prends un warning sur le type de retour
mais si je declare
Code :
|
j ai plus d erreur mais je trouve ca crade et pas flexible
Marsh Posté le 11-06-2008 à 17:44:15
u08 FKT[22]="0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16";
//Eingänge PORTA und PORTB von 0x40 für RA0 bis 0x4F für RB7
//Ausgänge PORTC(außer RC6 und RC7), PORTD und PORTE(RE0 und RE1) von 0x60 für RC0 bis 0x6F für RE1
char adress=0x42;
const char PORT[16]={"0x40","0x41","0x42","0x43","0x44","0x45","0x46","0x47","0x48","0x49","0x4A","0x4B","0x4C","0x4D","0x4E","0x4F"};
const char Pass[16]={"RA0","A1","RA2","RA3","RA4","RA5","RA6","RA7","RB0","RB1","RB2","RB3","RB4","RB5","RB6","RB7"};
char FindPort(char adress)
{
int i=0;
int a=0;
u08 c=0;
for(i=0;i<=16;i++)
{
if(PORT[i]==adress)
a=i;
}
return (Pass[a]);
}
jaimerais avoir le resultat RA2
Marsh Posté le 12-06-2008 à 12:38:07
1) Si PORT[16] est bien un tableau de char, il faut elever les "
2) C'est char *Pass[16], pas char Pass[16].
3) De même FincPort doit retourner un char *, pas un char
4) Tes tableaux ont 16 éléments, les indices vont donc de 0 à 15. Si tu list la case 16 ça va pas aller.
Marsh Posté le 12-06-2008 à 12:42:33
z'en avez du courage les gens. Soit le type a un problème de syntaxe et à ce moment là, il expose clairement la ligne qui ne va pas, soit ça n'est pas un problème de syntaxe et il donne un programme qui compile. La ce programme y a 4 photes par ligne, c'est un programme jamais compilé, tapé dans word.
Marsh Posté le 12-06-2008 à 13:23:50
Mon courage a des limites, j'ai abandonné depuis mon dernier post.
raoul11 > Ce qu'il te faut à ce stade, plus qu'une solution à ton problème, c'est étudier un vrai cours de C. Je te propose d'acheter un livre : "Le Langage C", de Kernighan et Ritchie.
Marsh Posté le 12-06-2008 à 13:47:59
je compte le faire. merci tout de meme por votre aide. serait il possible de retourner un string, si oui comment le definir. j ai avancer d un pas grace a matafan.
Marsh Posté le 12-06-2008 à 13:48:54
Y a pas de string en C. Pas de chaînes de caractères, ça n'existe pas.
Ce sont des tableaux de caractères, et il faut donc que tu en retournes l'adresse via un pointeur (de type char* donc).
Marsh Posté le 11-06-2008 à 16:20:25
Salut a tous
j ai un Probleme d array. j ai defini une fonction comme suite
adresse= 0x45;
PORT[12]={'0x12','0x14','0x45','0x52'}
Pass[12]={'RA1','Ra2','RA3','Ra4'}
char trouver( char addresse)
{
int i=0;
int a=0;
for (i=0;i<17;i++)
{
if(Port[i]=adresse)
{
a=i;
}
}
return Pass[a];
}
et j aimerais que cette fonction me retourne Ra3. que puije faire pour ameliorer le Programme.
A++