C++ Erreur de segmentation (entres autres)
infonulle
-
infonulle -
infonulle -
Bonjour,
je ne suis pas une habituée des forums de discussion, mais là j'ai vraiment besoin d'aide... Je suis une débutante en programmation et là je dois créer un programme qui, à partir d'un fichier de ventes comme celui-ci (journée, no inventaire, montant, taxes applicables):
1 1442945365 4.83 0
1 1677212580 5.33 1
1 1075280701 4.41 2
2 2041709329 2.24 1
2 492638721 5.3 1
2 1178377885 5.38 2
2 823057922 1.98 1
3 607226098 1.65 2
3 1744825513 0.61 2
4 527201442 2.8 1
5 500227580 8.66 1
7 1758559428 9.46 2
7 1224312319 2.5 2
7 1314492810 1.65 2
8 1629033916 3.73 0
9 305060128 7.33 1
10 1878381717 8.09 0
10 837973000 2.01 1
12 1847305569 7.16 1
12 716684416 9.98 1
12 1604812568 6.4 2
12 1107527429 2.81 0
12 1662858343 5.58 2
12 1077103072 9.71 2
14 26213391 7.74 0
14 1309165111 8.36 1
14 781718140 2.26 1
14 735719418 4.18 2
14 170184098 1.68 1
14 258044696 6.08 2
14 1797919403 7.99 1
14 523737910 9.78 2
15 477048981 0.7 2
15 1941744437 9.25 0
15 1918218989 0.73 0
16 1140888310 9.77 1
16 328044043 9.02 2
16 137810440 6.88 1
18 19922224 0.9 0
19 52791818 5.1 2
21 1205241939 3.82 0
Je dois obtenir un résultat comme celui-ci:
Semaine 1-7 //semaine contenant les jours 1 à 7
4.83 //montant avant taxes pour semaine 1-7
0.0 // TPS
0.36225 //TVQ
Semaine 8-14
5.33
0.0
0.0
Semaine 15-21
9.61
0.57659996
0.763995
Jusqu'à maintenant j'ai ceci comme programme, mon plus gros problème est que je n'arrive pas à séparer les données par semaine et là j'obtiens une erreur de segmentation et je ne sais même pas ce que ça veut dire!
#include <iostream>
using namespace std;
struct ventes{
int jour;
int inventaire;
float montant;
int taxes;
};
int main(void)
{
ventes v[1000];
int i=0;
int semaine=0;
int finsemaine=0;
float somme=0;
float pastaxes=0;
float TPSetTVQ=0;
float TPS=0;;
float TVQ=0;;
for(int i=1;semaine=i;i++){
cin >>v[i].jour;
cin >>v[i].inventaire;
cin >>v[i].montant;
cin >>v[i].taxes;
semaine=((v[i].jour-1)/7)+1;
finsemaine=semaine*7;
somme=somme+v[i].montant;
switch (v[i].taxes)
{
case 0:
pastaxes=pastaxes+v[i].montant;
break;
case 1:
TPSetTVQ=TPSetTVQ+v[i].montant;
break;
case 2:
TPS=TPS+v[i].montant;
break;
case 3:
TVQ=TVQ+v[i].montant;
break;
}
}
cout<<"Semaine "<<finsemaine-6<<"-"<<finsemaine<<endl;
cout<<"Montant :"<<somme<<endl;
cout<<"Pas de taxes :"<<pastaxes<<endl;
cout<<"TPS et TVQ :"<<TPSetTVQ<<endl;
cout<<"TPS :"<<TPS<<endl;
cout<<"TVQ :"<<TVQ<<endl;
cout<<endl;
return 0;
}
Est-ce que kkun pourrait m'aider??? Un gros gros merci à l'avance! :)
je ne suis pas une habituée des forums de discussion, mais là j'ai vraiment besoin d'aide... Je suis une débutante en programmation et là je dois créer un programme qui, à partir d'un fichier de ventes comme celui-ci (journée, no inventaire, montant, taxes applicables):
1 1442945365 4.83 0
1 1677212580 5.33 1
1 1075280701 4.41 2
2 2041709329 2.24 1
2 492638721 5.3 1
2 1178377885 5.38 2
2 823057922 1.98 1
3 607226098 1.65 2
3 1744825513 0.61 2
4 527201442 2.8 1
5 500227580 8.66 1
7 1758559428 9.46 2
7 1224312319 2.5 2
7 1314492810 1.65 2
8 1629033916 3.73 0
9 305060128 7.33 1
10 1878381717 8.09 0
10 837973000 2.01 1
12 1847305569 7.16 1
12 716684416 9.98 1
12 1604812568 6.4 2
12 1107527429 2.81 0
12 1662858343 5.58 2
12 1077103072 9.71 2
14 26213391 7.74 0
14 1309165111 8.36 1
14 781718140 2.26 1
14 735719418 4.18 2
14 170184098 1.68 1
14 258044696 6.08 2
14 1797919403 7.99 1
14 523737910 9.78 2
15 477048981 0.7 2
15 1941744437 9.25 0
15 1918218989 0.73 0
16 1140888310 9.77 1
16 328044043 9.02 2
16 137810440 6.88 1
18 19922224 0.9 0
19 52791818 5.1 2
21 1205241939 3.82 0
Je dois obtenir un résultat comme celui-ci:
Semaine 1-7 //semaine contenant les jours 1 à 7
4.83 //montant avant taxes pour semaine 1-7
0.0 // TPS
0.36225 //TVQ
Semaine 8-14
5.33
0.0
0.0
Semaine 15-21
9.61
0.57659996
0.763995
Jusqu'à maintenant j'ai ceci comme programme, mon plus gros problème est que je n'arrive pas à séparer les données par semaine et là j'obtiens une erreur de segmentation et je ne sais même pas ce que ça veut dire!
#include <iostream>
using namespace std;
struct ventes{
int jour;
int inventaire;
float montant;
int taxes;
};
int main(void)
{
ventes v[1000];
int i=0;
int semaine=0;
int finsemaine=0;
float somme=0;
float pastaxes=0;
float TPSetTVQ=0;
float TPS=0;;
float TVQ=0;;
for(int i=1;semaine=i;i++){
cin >>v[i].jour;
cin >>v[i].inventaire;
cin >>v[i].montant;
cin >>v[i].taxes;
semaine=((v[i].jour-1)/7)+1;
finsemaine=semaine*7;
somme=somme+v[i].montant;
switch (v[i].taxes)
{
case 0:
pastaxes=pastaxes+v[i].montant;
break;
case 1:
TPSetTVQ=TPSetTVQ+v[i].montant;
break;
case 2:
TPS=TPS+v[i].montant;
break;
case 3:
TVQ=TVQ+v[i].montant;
break;
}
}
cout<<"Semaine "<<finsemaine-6<<"-"<<finsemaine<<endl;
cout<<"Montant :"<<somme<<endl;
cout<<"Pas de taxes :"<<pastaxes<<endl;
cout<<"TPS et TVQ :"<<TPSetTVQ<<endl;
cout<<"TPS :"<<TPS<<endl;
cout<<"TVQ :"<<TVQ<<endl;
cout<<endl;
return 0;
}
Est-ce que kkun pourrait m'aider??? Un gros gros merci à l'avance! :)
A voir également:
- C++ Erreur de segmentation (entres autres)
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Java code erreur 1603 ✓ - Forum Windows
3 réponses
Première erreur { for(int i=1; semaine=i; i++) } ta variable {i} doit s'arrêter quelque part, c-à-dire que le {semaine=i} n'est pas à sa place vu que {i} avance (tu incrémente i++) tu devrais mettre par exemple{ for(i=1; i<1000; i++) } ! (C'est sa l'erreur de segmentation[SEGMENTATION DEFAULT]).
A part sa je crois que le reste est cohérent !
A part sa je crois que le reste est cohérent !
Ok merci!
Je comprends maintenant l'erreur de segmentation. Par contre, je n'arrive quand même pas à séparer mes ventes par semaines... Dois-je faire 52 case dans un switch???
Merci!
Je comprends maintenant l'erreur de segmentation. Par contre, je n'arrive quand même pas à séparer mes ventes par semaines... Dois-je faire 52 case dans un switch???
Merci!
Encore moi!
Aussi, quand je met mes "COUT" dans le "FOR", il les répète pour chaque incrémentation quand moi je voudrais seulement le total par semaine. Si je les mets à l'extérieur du "FOR" alors là il n'affiche que le dernier total en mémoire et évidemment, il contient toutes les semaines, pas seulement la dernière... Est-ce clair ce que je raconte?
Merci encore!
Aussi, quand je met mes "COUT" dans le "FOR", il les répète pour chaque incrémentation quand moi je voudrais seulement le total par semaine. Si je les mets à l'extérieur du "FOR" alors là il n'affiche que le dernier total en mémoire et évidemment, il contient toutes les semaines, pas seulement la dernière... Est-ce clair ce que je raconte?
Merci encore!