Erreur de compil en C, qqun peut m'aider ? (pb ultra simple) - C++ - Programmation
Marsh Posté le 13-02-2003 à 21:32:26
Code :
|
Marsh Posté le 13-02-2003 à 21:42:28
c koi le pb ?
en changeant tab par &tab dans l'appel du ss-pg ca marche
il le faut ps en principe non ?
Marsh Posté le 13-02-2003 à 21:43:49
Code :
|
ça devrait aller mieux...
Marsh Posté le 13-02-2003 à 21:44:55
Schumacher a écrit : c koi le pb ? |
de mieux en mieux....
tu déclares un tableau et tu passes un pointeur vers un float ! je me demande comment ça peux marcher ton truc.
cf ma réponse au dessus !
Marsh Posté le 13-02-2003 à 21:50:42
Harkonnen a écrit :
|
Euh ouais mais la, la memoire est toujours pas allouée....
Bon allez, deux solutions :
- si tu connais la taille max de ton tableau (et si c'est pas trop gros, exemple 100 ) tu ecrit ca :
Code :
|
et la ca devrais marcher
- sinon, il faut faire une allocation dynamique de memoire mais je crais que tu ne soit pas encore capable de bien comprendre comment ca marche.
Marsh Posté le 13-02-2003 à 21:51:04
fflush(stdin);
inutile et non-défini
beaucoup semble croire que cette ligne est magique....
Marsh Posté le 13-02-2003 à 21:52:49
fykman a écrit : |
voila ce que c'est d'être trop pressé de répondre....
Marsh Posté le 13-02-2003 à 21:53:11
++Taz a écrit : fflush(stdin); |
oui je sais à quoi ça sert on nous l'a expliqué en cours mais on nous conseille de le mettre tout le tps
Marsh Posté le 13-02-2003 à 21:55:13
Schumacher a écrit : |
Ya des profs, franchement...
Marsh Posté le 13-02-2003 à 21:55:39
fykman a écrit : |
+1
Marsh Posté le 13-02-2003 à 21:56:17
à priori ça pose pb sur des caractères par exemple où on peut avoir des résultat aléatoires si on ne le met pas (dixit mon prof)
sinon merci pour votre aide c bon j'ai compris
et désolé mais je suis débutant, tout le monde commence bien un jour
Marsh Posté le 13-02-2003 à 21:57:17
ReplyMarsh Posté le 13-02-2003 à 21:57:51
suis je pardonné ?
Marsh Posté le 13-02-2003 à 21:59:17
Schumacher a écrit : suis je pardonné ? |
non, tu es condamné à lire le stoustrup en entier en écoutant le dernier single d'Alizée
Marsh Posté le 13-02-2003 à 22:02:34
Schumacher a écrit : à priori ça pose pb sur des caractères par exemple où on peut avoir des résultat aléatoires si on ne le met pas (dixit mon prof) |
n'importe quoi. si tu veux te débarasser de ce qu'il y a dans le buffer de stdin, tu le vide en faisant par exemple, pour passer à la ligne suivant
http://www.isty-info.uvsq.fr/~rume [...] 4.html#q_4
Citation : 14.4 Pourquoi ne jamais faire fflush(stdin) ? |
Marsh Posté le 13-02-2003 à 22:03:56
Harkonnen a écrit : |
par contre alizée
pauvre B.S.
Marsh Posté le 13-02-2003 à 22:08:20
c'est qui B.S
Marsh Posté le 13-02-2003 à 22:09:53
Schumacher a écrit : à priori ça pose pb sur des caractères par exemple où on peut avoir des résultat aléatoires si on ne le met pas (dixit mon prof) |
de l'absurdité de la situation: ton prof te fais faire un truc qui ne fais tout simplement rien ( non-défini et sans effet sous linux,a pres....) et attendant un résultat magique... par contre ça lui viendrait pas à l'idée de controler scanf
en plus les programmes de test, c'est quand meme plus facile de taper les entrées une fois pour toutes dans un fichier et de rediriger ensuite.
bref laisse tomber ton fflush
Marsh Posté le 13-02-2003 à 22:11:34
Harkonnen a écrit : c'est qui B.S |
tu baisses dans mon estime. t'as jamais pensé que stroustrup avait un prénom?
N.B. B.S. a inventé le C++, pas le C qui vient du travail de B.K. & D.R.
Marsh Posté le 13-02-2003 à 22:24:08
++Taz a écrit : tu baisses dans mon estime. t'as jamais pensé que stroustrup avait un prénom? |
Bjarne, évidemment ! Honte sur moi !!!
Marsh Posté le 13-02-2003 à 22:25:10
++Taz a écrit : N.B. B.S. a inventé le C++, pas le C qui vient du travail de B.K. & D.R. |
Brian Kernighan et Dennis Ritchie ! et sans fautes d'orthographe en plus !!
Marsh Posté le 13-02-2003 à 22:27:48
++Taz a écrit : par contre alizée |
toi aussi tu baisses dans mon estime
Marsh Posté le 13-02-2003 à 23:12:22
donc fflush(stdin) totalement inutile, même lors de la lecture d'un caractère ?
Marsh Posté le 13-02-2003 à 23:17:02
Schumacher a écrit : donc fflush(stdin) totalement inutile, même lors de la lecture d'un caractère ? |
oui
cf le post de Taz pour la méthode à utiliser pour flusher stdin
Marsh Posté le 13-02-2003 à 21:28:38
je suis débutant en C et je ne comprend pas pourquoi j'ai l'erreur "incompatible type for argument 2 of `saisie'"
voilà le code source, j'ai juste déclaré et donné un sous-pg qui me permet de faire la saisie de reels dans un tableau
#include <stdio.h>
#include <stdlib.h>
/** déclaration de sous-pg **/
void saisie( int n, float tab[] );
/****** programme principal *******/
void main ()
{
/* déclaration variables */
int n_vr; /* nb de valeurs de vr */
int n_vs; /* nb de valeurs de vs */
float tab_vr; /* tableau de vr */
float tab_vs; /* tableau de vs */
/* saisie du nb de valeurs de vr */
printf ("Combien de valeurs dans vr ? \n" );
scanf ("%d", &n_vr);
fflush(stdin);
/* vérif */
while (n_vr <= 0)
{
printf ("Erreur, combien de valeurs dans vr ? \n" );
scanf ("%d", &n_vr);
fflush(stdin);
}
/* appel du sous-pg de saisie pour vr */
/****** PB ICI :saisie(n_vr, tab_vr); ******/
/* saisie du nb de valeurs de vs */
printf ("Combien de valeurs dans vs ? \n" );
scanf ("%d", &n_vs);
fflush(stdin);
/* vérif */
while (n_vs <= 0)
{
printf ("Erreur, combien de valeurs dans vs ? \n" );
scanf ("%d", &n_vs);
fflush(stdin);
}
system("PAUSE" );
}
/** sous-pg de saisie **/
void saisie ( int n , float tab[] )
/*
N : saisie
R : permet de saisir des valeurs réelles dans un tableau
E :
n : nb de valeurs du tableau
tab : tableau à remplir
S : tab (rempli)
P : n positif
*/
{
int i; /* compteur */
/** remplissage tableau **/
for (i=0 ; i<n ; i++)
{
printf ("Entrez la valeur de rang %d " , i+1);
scanf ("%f", &tab[i]);
fflush(stdin);
/* vérification */
while (tab[i] <= 0)
{
printf("Resaisir valeur " );
scanf ("%f", &tab[i]);
fflush(stdin);
}
}
}
merci d'avance
---------------
L'impôt appauvrit l'ignorant et enrichit le connaisseur.