Bonjour !
Etant un gros debutant en C je m'essai à faire un programme d'amortissement tout simple.
Mais le probleme c'est que windows plante lorsque je compile, ce
plantage est intervenu apres la création d'une fonction
"mois_translate" qui traduit le nombre de mois en lettre (ex : 12 =
décembre).
J'ai cherché mais je n'ai pas trouvé mon erreur.
Pouvez vous m'aider ?
Merci
PS : mon programme est bien sur pas fini du tout.
Mon code :
/*--------------------------------------------------------------------------*/
/* Nom du programme
amor.c
*/
/* Ce programme permet de calculer un amortissement sur plusieurs années */
/*--------------------------------------------------------------------------*/
/*------------------------------*/
/* Fichiers inclus */
/*------------------------------*/
#include <stdio.h>
#include <stdlib.h>
/*------------------------------*/
/* Définition des constantes */
/*------------------------------*/
#define MAX 12
#define OUI 1
#define NON 0
#define TOT_MOIS 12
/*------------------------------*/
/*
Variables
*/
/*------------------------------*/
char banque
;
/*Stock le nom de la
banque
*/
long
mont_pret;
/*Stock le montant du
pret
*/
int
nb_annee;
/*Stock le nombre
d'années
*/
int
deb_annee;
/*Stock le debut de
l'année
*/
int
taux_pret;
/*Stock le taux du pret en
% */
int
taux_assu;
/*Stock le taux d'assurance vie en % */
int
nb_mois;
/*Stock le nombre de
mois
*/
char nom_mois[TOT_MOIS+1];
/*Stok le nom des mois +1 car tablo */
int x,w
;
/*compteurs*/
int
cont;
/*controle */
/*------------------------------*/
/* Prototypes des fonctions */
/*------------------------------*/
void main(void);
void lecture(void);
void affiche_result(void);
int affiche_instruction(void);
int continuer(void);
char mois_translate(int);
/*------------------------------*/
/* Début du programme */
/*------------------------------*/
void main(void)
{
cont = affiche_instruction();
if(cont== OUI)
{
lecture();
affiche_result();
}
else
printf("\nProgramme interrompu par l'utilisateur ! \n\n") ;
system("PAUSE");
return 0;
}
/*------------------------------------------------------------*/
/* Fonction :
affiche_instruction()
*/
/* Objectif : Affiche le mode d'emploi du programme et */
/*
demande à l'utilisateur d'entrer 0
pour */
/*
sortir ou 1 pour
continuer
*/
/* Valeur renvoyées : NON si l'utilisateur tape 0 */
/*
OUI si l'utilisateur tape un nombre */
/*
different de
0
*/
/*------------------------------------------------------------*/
int affiche_instruction(void)
{
printf("\a\n\n");
printf("\n################################################################");
printf("\nCe programme vous permet de saisir le nombre d'année et");
printf("\nle montant d'un capital à amortir et permet ainsi de");
printf("\ncalculer et afficher un tableau d'amortissement sur x mois");
printf("\n################################################################");
printf("\n");
cont = continuer();
return(cont);
}
/*------------------------------------------------------------*/
/* Fonction :
lecture()
*/
/* Objectif : Cette fonction lit les données entrées par */
/*
l'utilisateur relatif au
pret.
*/
/* Valeurs renvoyées :
aucune
*/
/* Remarque :
aucune
*/
/*------------------------------------------------------------*/
void lecture(void)
{
printf("\a\n--------------------------------------------");
printf("\nEntrez les informations relatif au pret ");
printf("\n--------------------------------------------\n\n");
printf("\n\tEntrer le nom de la banque : ");
scanf("%s",&banque);
printf("\n\tEntrer le montant du pret : ");
scanf("%d",&mont_pret);
printf("\n\tEntrer lannée de début de l'amortissement : ");
scanf("%d",&deb_annee);
printf("\n\tAmortissement sur combien d'année ? : ");
scanf("%d",&nb_annee);
printf("\n\tEntrer le taux du pret : ");
scanf("%d",&taux_pret);
printf("\n\tEntrer le taux de l'assurance vie : ");
scanf("%d",&taux_assu);
}
/*------------------------------------------------------------*/
/* Fonction :
affiche_result()
*/
/* Objectif : affiche le résultat des calcules à l'écran */
/* Valeurs renvoyées :
aucunes
*/
/*------------------------------------------------------------*/
void affiche_result()
{
for (w=0; w<= nb_annee ; w++,deb_annee++) /* boucle année */
{
for (x=1; x<= TOT_MOIS ; x++) /* boucle mois */
{
printf("\n%s / %d :",mois_translate(x),deb_annee) ;
/*Affichage nom du mois et année */
}
}
}
/*------------------------------------------------------------*/
/* Fonction :
mois_translate()
*/
/* Objectif : affiche le nom d'un
mois
*/
/* Valeurs renvoyées :
aucunes
*/
/*------------------------------------------------------------*/
char mois_translate(int mois)
{
nom_mois[1]="janv";
nom_mois[2]="fevr";
nom_mois[3]="mars";
nom_mois[4]="avri";
nom_mois[5]="mai";
nom_mois[6]="juin";
nom_mois[7]="juil";
nom_mois[8]="aout";
nom_mois[9]="setp";
nom_mois[10]="octo";
nom_mois[11]="nove";
nom_mois[12]="dece";
return nom_mois[mois] ;
}
/*------------------------------------------------------------*/
/* Fonction
continuer()
*/
/* Objectif : cette fonction demande à l'utilisateur s'il */
/*
veut
continuer
*/
/* Valeurs renvoyées : OUI si l'utilisateur désire poursuivre */
/*
NON si l'utilisateur veut sortir */
/*------------------------------------------------------------*/
int continuer(void)
{
printf("\a\n\nVoulez vous continuer ? (0=non / 1=oui) :");
scanf("%d", &x) ;
while (x < 0 || x>1)
{
printf("\n%d est erroné !", x);
printf("\nEntrez 0 pour sortir ou 1 pour continuer :");
scanf("%d",&x);
}
if(x == 0)
return(NON) ;
else
return(OUI) ;
}