Petit probleme (apres compilation) - C - Programmation
Marsh Posté le 07-02-2004 à 09:07:29
scanf("%i",A)
pour les entiers c'est %d et pas %i
PS : utilise les balise cpp pour la lisbilité
Marsh Posté le 07-02-2004 à 09:10:29
black_lord a écrit : scanf("%i",A) |
ouais c'est ça va te recoucher black_lord
bon le seul truc, c'est que :
- t'as pas oublié l'histoire du & pour le scanf ?
- quand tu fais un printf qui se termine pas par un '\n' suivi d'un scanf, entre les 2, rajoute un fflush(stdout); qui force l'affichage et prévient de petits problèmes
edit: - %i est tout aussi valide que %d mais %d est plus communément utilisé
Marsh Posté le 07-02-2004 à 09:12:20
%i c'est correct ?? jamais vu ça.
Désolé si j'ai dis une connerie.
edit : ok, edit croisés
Marsh Posté le 07-02-2004 à 09:13:57
black_lord a écrit : %i c'est correct ?? jamais vu ça. |
la connerie c'est pas tellement ça, c'est que c'est l'hopital qui se fout de la charité, ombre est un grand débutant (sans doute premier programme) et toi t'es pas capable de lui rappeler comme on se sert de scanf
Marsh Posté le 07-02-2004 à 09:15:58
ombre > ça marche ?
et pour être correct et cohérent
main -> int main()
et en fin de main -> return 0;
et tout est bien
Marsh Posté le 07-02-2004 à 09:18:45
taz a écrit : la connerie c'est pas tellement ça, c'est que c'est l'hopital qui se fout de la charité, ombre est un grand débutant (sans doute premier programme) et toi t'es pas capable de lui rappeler comme on se sert de scanf |
c'est clair que j'ai pas fait assez attention, surtout parce que le %i m'a interpellé en fait en que j'ai pas cherché plus loin.
Marsh Posté le 07-02-2004 à 15:02:15
ReplyMarsh Posté le 07-02-2004 à 15:16:13
J'ai encor un autre petit probleme ^^
le probleme vien du fait que une fois que je tape les 2 variables
le programme se ferme comme si la tache etait termine ( pas d erreurs ecrits nul part)
y a pas un moyen de laisser la fenetre en attente ou autre solution pour qu'elle se ferme pas tout de suite ?
#include <stdio.h>
main()
{
/*declaration variable (entier) */
int A, B, somme ;
printf("Entrez le premier chiffre : " ) ;
scanf("%i",&A) ;
printf("Entrez le deuxieme chiffre : " ) ;
scanf("%i",&B) ;
somme = A + B ;
;
printf(" la somme du resultat est de %i et de %i : %i ",A,B,somme) ;
}
Marsh Posté le 07-02-2004 à 15:25:52
fait un getchar() ou exécute ton programme dans une invite de commande DOS
Marsh Posté le 07-02-2004 à 15:55:33
bin c'est deja executer sous dos
un autre exemple ou tout marche sauf // final
/*Test de nombres de Jrs function / */
// ------------------
#include <stdio.h>
int main()
{
// declaration variable
int nb_jours, nb_semaines ;
// entrez de variable
printf("entrez un nombre de jours : " ) ;
scanf("%d",&nb_jours) ;
// instruction
nb_semaines = nb_jours / 7 ;
if (nb_jours < 7 )
return main() ;
// final
printf("il y a %d semaines dans %d jours",nb_semaines,nb_jours) ;
}
Marsh Posté le 07-02-2004 à 16:14:27
mets ta ligne aveant le return
et mets "retun 0" plutot parce que la ça appelle ton prog en boucle
et utilises les balis [ cpp ] [ /cpp ]
Marsh Posté le 07-02-2004 à 16:32:20
tu veux faire quoi exactement ?
int totaljours = 154 ;
int joursrestant = totaljours % 7 ;
int nbresemaines = totaljours / 7 ;
Marsh Posté le 07-02-2004 à 16:38:49
tu veux faire quoi exactement ?
bin que //final : reste affiche parcque quand je rentre le nombre de jours le programe se ferme automatiquement !
les balise cpp se mettents ou ??
Marsh Posté le 07-02-2004 à 19:43:17
ombreee a écrit : le probleme vien du fait que une fois que je tape les 2 variables |
mais c'est pourant le cas d'apres le source
Marsh Posté le 07-02-2004 à 19:55:29
Oui mais moi j'aimerai pouvoir arreter ca si quelqun pouvait me donner un exemple de programme
variable A (float ou int ect... )
avec une constente B = (un nombre quelquonque 1,2,3 ...)
resultat = a + b
et une phrase de fin du genre : a + b = resultat
et que l aplique ne se ferme pas sans meme que je puisse regarder le resultat ..?
??
Marsh Posté le 07-02-2004 à 20:00:11
ben tu lance l'application dans une fenetre dos comme tu devrais déjà le faire
Marsh Posté le 07-02-2004 à 20:03:41
skelter a écrit : un peu plus haut on a dit getchar(), a la fin du prog |
normal, y a un '\n' qui traine
Marsh Posté le 07-02-2004 à 20:06:58
ReplyMarsh Posté le 07-02-2004 à 20:07:23
ombreee a écrit : oui mais meme si j enleve le saut de ligne pareil |
tu m'a pas compris. écoute, lance ton programme à la main dans une console
Marsh Posté le 07-02-2004 à 20:13:36
>ombree: les gens qui maitrisent oublie parfois qu ils ont aussi commence. Pour avoir une reponse claire et complete il est indispensable que tu exposes bien clairement ton concept ton probleme et l aide que tu attends de la part des gens du forum
sinon
pour que ton programme ne se ferme il faut qu il continue a s executer
met donc ton calcul dans un while
exemple
Code :
|
voila
tu vois l idee?
Marsh Posté le 07-02-2004 à 20:20:46
non, spa bon. la bonne façon,c 'est de faire
un
while(fgets(ligne, sizeof ligne, stdin) && strcmp(ligne, 'bye\n'))
et ensuite travailler avec sscanf
Marsh Posté le 07-02-2004 à 20:24:58
bonzefou
merci enfaite il faut finir le programe sur une insruction non effectuer OK
mais y a un truc que je ne comprend pas trops ? quelle est la diferance entre while est if ???
Marsh Posté le 07-02-2004 à 20:26:49
ueh la soltuion de bonze ne marchera jamais, enplus de faire partir le programme dans une boucle infinie, le fera planter
Marsh Posté le 07-02-2004 à 20:33:03
pour terminer
soit tu fais comme TAZ et tu tappes bye et [entree}
soit tu reponds a une question precise
soit tu mets un temps d attente a la fin pour avoir le temps de lire et apres ca se ferme tout seul
je ne vois pas d autres solutions desole
if: c une condition (si en francais) teste une fois
while: ca veut dire faire ce qui est entre {} tant que la condition est vrai (ce qui est entre () )
la condition est testee a chaque passage
voila
je te conseille la soluce de TAZ
Marsh Posté le 07-02-2004 à 20:33:54
Oui le programe part dans une boucle mais avec if je peut la casser
Marsh Posté le 07-02-2004 à 20:36:23
taz a écrit : ueh la soltuion de bonze ne marchera jamais, enplus de faire partir le programme dans une boucle infinie, le fera planter |
??
je suis pas doue mais la j aurais besoin de tes lumieres STP
je voulais simplement proposer une soluce simple pour qqun qui debute
Marsh Posté le 07-02-2004 à 20:40:36
deja if (strcmp(A,'N') A est un int, et tu test si A est different de 'N' et non si a est egal a 'N'
et si A etait un caracter tu devrait faire if (!strcmp(&A,'N'))
Marsh Posté le 07-02-2004 à 20:44:10
Code :
|
Marsh Posté le 07-02-2004 à 20:45:14
skelter a écrit : deja if (strcmp(A,'N') A est un int, et tu test si A est different de 'N' et non si a est egal a 'N' |
vous deux là bonz et skelter, vous êtes de très mauvais conseil, alors passer votre chemin, ou contentez vous d'écouter
Marsh Posté le 07-02-2004 à 09:04:42
Voila une fois que je compile un programe ex :
#include <stdio.h>
main()
{
int A, B, somme ;
printf("Entrez le premier chiffre" ) ;
scanf("%i",A) ;
printf("Entrez le deuxieme chiffre" ) ;
scanf("%i",B) ;
somme = A + B ;
printf(" la somme du resultat est de %i ",somme) ;
}
Au moment ou je tape la variable A et j'apuie sur "entree" pour valide j'ai un message d'erreur de winXP et il ferme l aplication
je voit pas quoi faire