fonction et retour de structure | tomik recentré sur le rand() [C] - C++ - Programmation
Marsh Posté le 02-12-2002 à 21:41:16
Code :
|
Marsh Posté le 02-12-2002 à 21:45:31
pour la def de fonction
void axesim(int dimension, int pas, struct pt);
pour la fonction
void axesim(int dimension, int pas) {
int axe[dimension], i, temp;
//struct resultat pt;
for(i=0;i<dimension;i++)
axe[i]=0;
axe[0]=1;
pt.fin=0;
pt.max=0;
pt.retour=0;
for(i=0;i<=pas;i++) {
temp = hasard(2);
temp=1;
if ((temp==0)&&(pt.fin>0)) {
axe[pt.fin--]=0;
axe[pt.fin]=1;
}
else if ((temp==1)&&(pt.fin<(dimension-1))) {
axe[pt.fin++]=0;
axe[pt.fin]=1;
}
if (pt.max<pt.fin)
pt.max=pt.fin;
if (pt.fin==0)
pt.retour++;
}
return pt;
}
Marsh Posté le 02-12-2002 à 21:47:03
Taz@PPC a écrit a écrit : et ca marche aussi sans typedef |
certes, mais c'est mois beau
Marsh Posté le 02-12-2002 à 21:49:11
lorill a écrit a écrit : certes, mais c'est mois beau |
ben des fois, ca denote une volonté de limiter l'utilisation d'un type de données en se passant de typedef. Pour mes types "privés" je laisse le qualificatif struct.
Marsh Posté le 02-12-2002 à 21:49:41
ah, j'avais oublié
Code :
|
Marsh Posté le 02-12-2002 à 21:53:28
Taz@PPC a écrit a écrit :
|
ca ne marche pas justement
Marsh Posté le 02-12-2002 à 21:55:50
ca fait
49 d:\temp\willi.c
conflicting types for `axesim'
Marsh Posté le 02-12-2002 à 21:56:25
Taz@PPC a écrit a écrit : quelle version? |
dev-cpp 4
g pas mieux pour le moment
et le rand() me renvoie des valeurs
Marsh Posté le 02-12-2002 à 21:57:36
SirJeannot a écrit a écrit : dev-cpp 4 g pas mieux pour le moment et le rand() me renvoie des valeurs |
ah oui, effectivement
[cpp]void axesim(int, int, struct resultat);[/cpp)
marche po . je vais chercher pourquoi...
et c'est peut etre bien le but que rand() renvoie des trucs
Marsh Posté le 02-12-2002 à 21:58:21
Code :
|
Marsh Posté le 02-12-2002 à 21:58:31
Taz@PPC a écrit a écrit : et c'est peut etre bien le but que rand() renvoie des trucs |
entre 1 et 30000 et des bananes?
Marsh Posté le 02-12-2002 à 22:00:29
SirJeannot a écrit a écrit : entre 1 et 30000 et des bananes? |
c'est absolument normal, rand() renvoie un entier entre 0 et RAND_MAX qui peut vaut sur ton systeme 32767 soit le maximum d'un short int codé sur 16bits
Marsh Posté le 02-12-2002 à 22:02:22
Taz@PPC a écrit a écrit : c'est absolument normal, rand() renvoie un entier entre 0 et RAND_MAX qui peut vaut sur ton systeme 32767 soit le maximum d'un short int codé sur 16bits |
ah j'en ai appris une aujourd'hui
paskeu sur freebsd ca renvoie qqc entre 0 et 1 (réel)
Marsh Posté le 02-12-2002 à 22:07:12
Taz@PPC a écrit a écrit : ca m'etonnerait, c'est on ne peut plus standard (ANSI) |
bah aux dernieres nouvelles (c a dire ya 2 semaines ca marchait )
Marsh Posté le 02-12-2002 à 22:12:52
voilà, un tit typedef tout propre au début et c nickel
comme quoi c'était vraiment con
merci
Marsh Posté le 02-12-2002 à 22:13:26
Taz@PPC a écrit a écrit : , ouais ben je t'invite à vérifier quand meme |
je retest demain matin
Marsh Posté le 02-12-2002 à 22:15:09
SirJeannot a écrit a écrit : je retest demain matin |
ouais, et si ca te donne un réel je veux le code que t'as compilé et l'email de ton root pour lui péter la gueule (si K&R étaient morts ils se retourneraient dans leurs tombes)
Marsh Posté le 02-12-2002 à 22:22:38
Taz@PPC a écrit a écrit : ouais, et si ca te donne un réel je veux le code que t'as compilé et l'email de ton root pour lui péter la gueule (si K&R étaient morts ils se retourneraient dans leurs tombes) |
je lui ai écrit plein de fois (pour mettre les paths des librairies gdk) et jamais de réponse, ... alors pour le pétage de gueule c mort
Marsh Posté le 03-12-2002 à 08:37:28
#include <stdio.h>
main() {
printf("%f\n", rand() );
}
ca renvoie 0
et %d ca renvoie
1103527590
Marsh Posté le 03-12-2002 à 08:40:41
SirJeannot a écrit a écrit : #include <stdio.h> main() { printf("%f\n", rand() ); } ca renvoie 0 et %d ca renvoie 1103527590 |
tu peux essayer de compiler le code ANSI que je t'ai donné plus haut et donner la version de ton compilateur?
Marsh Posté le 03-12-2002 à 08:42:48
les deux fonctions?
ben si j'étais toi, je m'abstiendrais de faire du C sur ta plateforme. C'est pas que ton compilo soit buggé, c'est que ta librairie est meme pas standard
Marsh Posté le 03-12-2002 à 08:48:41
bah ... en fait le copier coller de opera à nedit fout des caractères qui font chier le compliteur
Marsh Posté le 03-12-2002 à 08:51:59
ReplyMarsh Posté le 03-12-2002 à 09:25:28
chez moi ça compile par pcq c'est soit du C++ soit du C99, mais pas du "vieux" C en tout cas
srand(time(NULL));
unsigned n;
scanf("%u", &n);
-> il me dit que la déclaration d'unsigned n est pas autorisée ici (Borland C++ 5.0)
Marsh Posté le 03-12-2002 à 09:35:20
il me sort des erreurs
rand.c: In function `main':
rand.c:40: syntax error before `unsigned'
rand.c:41: `n' undeclared (first use in this function)
rand.c:41: (Each undeclared identifier is reported only once
rand.c:41: for each function it appears in.)
rand.c:43: syntax error before `int'
rand.c:44: `i' undeclared (first use in this function)
Marsh Posté le 03-12-2002 à 09:36:47
dans ton .c il m'a suffit de mettre les déclarations de variables avant les appels de fonction
Marsh Posté le 03-12-2002 à 09:45:59
ya des ^M partout dans le .c
spa reconno comme un caractère de contr^ole
Marsh Posté le 03-12-2002 à 09:46:38
heu j'ai pas ce prob de ^M moi
Marsh Posté le 02-12-2002 à 21:37:11
bon voilà mon pb,
je voudrais faire en sorte que ma fonction retourne une structure, ou modifie une structure existante dans main ...
le prob, c'est que quand je def une fonction qui renvoie une structure, ca chie à la compil (trop d'arguments, ...)
-> struct ma_structure ma_fonction(int n, ... )
et quand je veux faire passer un pointeur de structure (si c'est possible, je me tapppe des pointeurs non compatibles ...
du genre
-> void ma_fonction( int n, struct *pt)
bah non
et vu que les pointeurs et les structures c'est complètement mystique pour moi ...
merci d'avance
ps: j'aurais aimé ne pas utiliser de structure pour retourner 3 variables, mais on me demande de faire comme ca
Message édité par Profil supprimé le 03-12-2002 à 09:57:35