Program.exe

Fermé
Broski - 9 déc. 2020 à 23:28
 Utilisateur anonyme - 20 déc. 2020 à 04:22
Bonjour,



J'ai ecris un program de language c dans le logiciel DEV C++ qui est juste et correcte mais quand je fais "Run" a mon programme une fenetre s'apparait disant que le program.exe a cessé de fonctionner j'aimerais bien si quelqu'un me propose une solution merci d'avance .

4 réponses

Utilisateur anonyme
9 déc. 2020 à 23:45
Bonsoir

j'aimerais bien si quelqu'un me propose une solution


Les 2 grandes raisons pour qu'un programme s'arrête c'est
  • qu'il a fini ce qu'il avait à faire
  • qu'il a planté


Dans les 2 cas, ça n'est manifestement pas ce que tu attends, pour essayer de t'aider, il qu'on puisse lire ton code sauf que notre boule de cristal est en panne... du coup, il faut que tu les postes.

Et pour poster un code, il faut d'abord lire attentivement et jusqu'au bout ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

0
 #include<stdio.h>
#include<math.h>
main()
{//Ce programme calcul la racine carrée d'un nombre réel 
float x,racx ;
printf("Donnez le real pour caculer son racine") ;
scanf("%f",x);
printf("x=if\n",x);
//traitement
if(x<0) printf("x n'admet pas de racine");
else {
 racx=sqrt(x) ;
 printf("le racine carée du nombre %f est: %f\n",x,racx);

}
getch();

}


EDIT : Correction des balises de code
0
Utilisateur anonyme
19 déc. 2020 à 09:16
Maintenant que c'est lisible, on peut commencer à regarder ton programme.
Pense à remercier Jordane de l'avoir fait à ta place

Le c n'est pas mon fort, il faudra sans doute attendre l'intervention d'un membre plus aguerri dans ce langage.
Cela dit quelques point d'améliorations
  • le mot racine est féminin
  • scanf prend en second paramètre un pointeur, actuellement x vaut toujours 0 quoique que tu saisisses.
  • cette ligne
    printf("x=if\n",x);
    lève un warning, qui dit en gros que x ne sert à rien là
  • pour getch() tu devrais lire https://ans.wiki/q/a-quoi-sert-la-fonction-getch-en-langage-c/


0
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
19 déc. 2020 à 19:40
Bonjour,

Il a en effet quelques erreurs. Celles que j'ai vues:
- ligne 3 : on doit déclarer
main
comme ne recevant rien et retournant un entier, qui s'écrit
int main(void)
, ta syntaxe a dû provoquer un avertissement du compilateur.
- ligne 6 : tu veux afficher un texte, celui-ci risque de ne pas s'afficher. Pour garantir l'émission du texte, il faut le terminer par le caractère
\n
ou bien tu peux ajouter entre les lignes 6 et 7
fflush(stdout);
.
- ligne 7 : surement la cause de ton plantage et le compilateur a dû t'avertir. Les paramètres après le format doivent être les adresses des variables à remplir. Il manque donc un
&
juste avant
x
.
- ligne 8 : Le format du printf nécessite le caractère
%
pour indiquer une variable à afficher. Surement une faute de frappe et de relecture, c'est
%f
qu'il faut utiliser pas
if
.
Ensuite tout va beaucoup mieux.
0
Utilisateur anonyme
19 déc. 2020 à 23:32
Hello, ha oui, j'avais oublié le int main, pourtant je l'avais vu....

Par contre, avec son code et sur ce site https://www.onlinegdb.com/online_c_compiler j'ai aussi un avertissement pour getch, résolu en lisant le wiki.
0
Utilisateur anonyme > Utilisateur anonyme
Modifié le 20 déc. 2020 à 04:28
Mes tentatives d'apprentissage remontent à très très (trop) loin, mais j'ai le souvenir que Windows m'affichait une erreur similaire si ma fonction main ne se terminait pas avec un
return 0;
. Si quelqu'un veut bien corriger ma mémoire...

Edit : ça a déjà été dit plus haut, main doit retourner un entier. Ma mémoire va mieux que mes yeux...
0