Défilement à l'infini; problème d'allocation
firk
-
firk -
firk -
Bonjour,
1) Voilà j'aimerais savoir à quoi correspond l'incident suivant :
Lorsque j'exécute mon programme, pour un cas précis, je rentre des valeurs, et , normalement, au bout du compte, je devrais obtenir une phrase précise. Malheureusement, j'obtiens 2 phrases qui défilent tout le temps et qui ne s'arrêtent que lorsque j'exécute la commande ctrl+z.
Pourtant sur le programme, ce cas marche pour 2 autres cas(les 3 cas sont les mêmes, à la différence près que la situation de la personne change)
Pouvez-vous m'indiquer comment résoudre cette difficulté?
2) J'ai un autre problème : en effet, lorsque je rentre des valeurs(entières), avant de rentrer ma valeur, il s'affiche des valeurs complètement bizarres du style :
Indiquer le loyer L du foyer : 134524968
55
Indiquer le revenu R[0] du colocataire1 : 134564976
2312
Indiquer le revenu R[1] du colocataire2 : 134604984
0
Noter que 55, 2312 et 0 sont les valeurs que j'ai rentrées
S'agit-il d'un problème d'allocation? Si oui, pouvez-vous me corriger :
sachant que ma fonction est loc(int R[],int L,char *statut1,char *statut2).
J'ai réussi à allouer de la mémoire pour les chaînes de caractères comme tel :
statut1=(char*)malloc(6*(sizeof(char)));
statut2=(char*)malloc(6*(sizeof(char)));
1) Voilà j'aimerais savoir à quoi correspond l'incident suivant :
Lorsque j'exécute mon programme, pour un cas précis, je rentre des valeurs, et , normalement, au bout du compte, je devrais obtenir une phrase précise. Malheureusement, j'obtiens 2 phrases qui défilent tout le temps et qui ne s'arrêtent que lorsque j'exécute la commande ctrl+z.
Pourtant sur le programme, ce cas marche pour 2 autres cas(les 3 cas sont les mêmes, à la différence près que la situation de la personne change)
Pouvez-vous m'indiquer comment résoudre cette difficulté?
2) J'ai un autre problème : en effet, lorsque je rentre des valeurs(entières), avant de rentrer ma valeur, il s'affiche des valeurs complètement bizarres du style :
Indiquer le loyer L du foyer : 134524968
55
Indiquer le revenu R[0] du colocataire1 : 134564976
2312
Indiquer le revenu R[1] du colocataire2 : 134604984
0
Noter que 55, 2312 et 0 sont les valeurs que j'ai rentrées
S'agit-il d'un problème d'allocation? Si oui, pouvez-vous me corriger :
L=(int)malloc(10000*(sizeof(int))); /* A vérifier -> problème d'allocation persiste(pour L,R[0],R[1])*/ R[0]=(int) malloc(10000*(sizeof(int))); R[1]= (int)malloc(10000*(sizeof(int)));
sachant que ma fonction est loc(int R[],int L,char *statut1,char *statut2).
J'ai réussi à allouer de la mémoire pour les chaînes de caractères comme tel :
statut1=(char*)malloc(6*(sizeof(char)));
statut2=(char*)malloc(6*(sizeof(char)));
A voir également:
- Défilement à l'infini; problème d'allocation
- Barre de défilement - Guide
- Problème défilement incontrôlable ✓ - Forum Excel
- Utiliser ticket kadéos infini sur internet - Forum Consommation & Internet
- Qui prend les kadeos edenred infini - Forum Consommation & Internet
- Défilement qui se font tout seul. ✓ - Forum Windows 10
Excuse-moi, mais j'étais parti en weekend, c'est pourquoi je n'ai pas pu te répondre plus tôt.
J'espère que tu pourras m'aider, la situation devient critique. J'ai déjà envoyé mon code, mais je n'ai aucune réponse.
Je compte vraiment sur toi, et je t'envoie le code : (réponds-moi dans la journée stp)
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> char* status[]={"CDI_hors_ess_ou_preavis_lic","CDD_CNE_ou_CDI_essai","Etudiant","TNS","Retraités","enplace_depuis_ plus_de_Douze_mois_sans_incident_paiement"}; //donne des valeurs allant de 0 à 5 aux différents status scanf("%s",&status[0]);scanf("%s",&status[1]);scanf("%s",&status[2]);scanf("%s",&status[3]);scanf("%s",&status[4]);scanf("%s",&status[5]);scanf("%s",&statut1);scanf("%s",&statut2); PB d'allocation pour status[i], i=0,...,5? colocation(int R[],int L,char *statut1,char *statut2) { /* Cas 2 En place */ if(strcmp(statut1,status[5]) && strcmp(statut2,status[5])) printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n"); /* Cas 1 En place avec n'importe qui */ else { if((strcmp(statut1,status[5]) && !strcmp(statut2,status[5])) || (strcmp(statut2,status[5]) && !strcmp(statut1,status[5]))) printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n"); } { /* Cas 2 Etudiants*/ if(strcmp(statut1,status[2]) && strcmp(statut2,status[2])) printf("Demande de Caution Solidaire\n"); /*1 Etudiant avec quelqu'un ayant un autre statut*/ else if((strcmp(statut1,status[2]) && !strcmp(statut2,status[2])) || ((strcmp(statut2,status[2]) && !strcmp(statut1,status[2])))) { if((R[1]>3*L && R[0]>2*L) || (R[0]>3*L && R[1]>2*L)) { printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n"); printf("Demande de Caution Solidaire\n"); } else { if(R[1]<2*L && R[0]<2*L) printf("Impossibilité de soumettre votre dossier\n"); } } if((strcmp(statut1,status[2]) && strcmp(statut2,status[1])) || (strcmp(statut2,status[2]) && strcmp(statut1,status[1]))) { if(R[1]>2*L || R[0]>2*L) { printf("Demande de Caution Solidaire\n"); printf("Impossibilité de soumettre votre dossier\n"); } } } { /* Cas 2 C.D.I */ if(strcmp(statut1,status[0]) && strcmp(statut2,status[0])) { if(R[0]>3*L || R[1]>3*L) printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n"); else { if(R[0]<2*L && R[1]<2*L) printf("Impossibilité de soumettre votre dossier\n"); else { if((R[0]<2*L && R[1]>=2*L && R[1]<3*L) || (R[1]<2*L && R[0]>=2*L && R[0]<3*L)) printf("Demande de Caution Solidaire\n"); } } } /* Cas 1 C.D.I avec n'importe qui */ else { if((strcmp(statut1,status[0]) && !strcmp(statut2,status[0]) && statut2!=status[1] && statut2!=status[5]) || (strcmp(statut2,status[0]) && !strcmp(statut1,status[0])) && statut1!=status[1] && statut1!=status[5]) { if(R[0]<2*L && R[1]<2*L) printf("Impossibilité de soumettre votre dossier\n"); while((R[0]<2*L && R[1]>=2*L) || (R[1]<2*L && R[0]>=2*L)) { printf("Demande de Caution Solidaire\n"); printf("Impossibilité de soumettre votre dossier\n"); } while((R[0]>3*L && (R[1]<=3*L || R[1]>=2*L || R[1]<2*L)) || (R[1]>3*L && (R[0]<=3*L || R[0]>=2*L || R[0]<2*L))) { printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n"); printf("Demande de Caution Solidaire\n"); } } } } { /* Cas 2 T.N.S */ { if(strcmp(statut1,status[3]) && strcmp(statut2,status[3])) { if(R[0]>3*L || R[1]>3*L) printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n"); else { if(R[0]<2*L && R[1]<2*L) printf("Impossibilité de soumettre votre dossier\n"); else { if((R[0]<2*L && R[1]>=2*L && R[1]<3*L) || (R[1]<2*L && R[0]>=2*L && R[0]<3*L)) printf("Demande de Caution Solidaire\n"); } } } /* Cas 1 T.N.S avec n'importe qui */ else { if((strcmp(statut1,status[3]) && !strcmp(statut2,status[3]) && statut2!=status[1] && statut2!=status[5]) || ((strcmp(statut2,status[3]) && !strcmp(statut1,status[3])) && statut1!=status[1] && statut1!=status[5])) { if(R[0]<2*L && R[1]<2*L) printf("Impossibilité de soumettre votre dossier\n"); while((R[0]<2*L && R[1]>=2*L) || (R[1]<2*L && R[0]>=2*L)) { printf("Demande de Caution Solidaire\n"); printf("Impossibilité de soumettre votre dossier\n"); } } while((R[0]>3*L && (R[1]<=3*L || R[1]>=2*L || R[1]<2*L))|| (R[1]>3*L && (R[0]<=3*L || R[0]>=2*L || R[0]<2*L))) { printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n"); printf("Demande de Caution Solidaire\n"); } } } } { /* Cas 2 Retraités */ if(strcmp(statut1,status[4]) && strcmp(statut2,status[4])) { if(R[0]>3*L || R[1]>3*L) printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n"); else { if(R[0]<2*L && R[1]<2*L) printf("Impossibilité de soumettre votre dossier\n"); else { if((R[0]<2*L && R[1]>=2*L && R[1]<3*L) || (R[1]<2*L && R[0]>=2*L && R[0]<3*L)) printf("Demande de Caution Solidaire\n"); } } } /* Cas 1 Retraité avec n'importe qui */ else { if((strcmp(statut1,status[4]) && !strcmp(statut2,status[4]) && statut2!=status[1] && statut2!=status[5]) || ((strcmp(statut2,status[4]) && !strcmp(statut1,status[4])) && statut1!=status[1] && statut1!=status[5])) { if(R[0]<2*L && R[1]<2*L) printf("Impossibilité de soumettre votre dossier\n"); while((R[0]<2*L && R[1]>=2*L) || (R[1]<2*L && R[0]>=2*L)) { printf("Demande de Caution Solidaire\n"); printf("Impossibilité de soumettre votre dossier\n"); } while((R[0]>3*L && (R[1]<=3*L || R[1]>=2*L || R[1]<2*L)) || (R[1]>3*L && (R[0]<=3*L || R[0]>=2*L || R[0]<2*L))) { printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n"); printf("Demande de Caution Solidaire\n"); } } } } /* Cas 2 C.D.D */ { if(strcmp(statut1,status[1]) && strcmp(statut2,status[1])) { if(R[0]<2*L && R[1]<2*L) printf("Impossibilité de soumettre votre dossier\n"); else { if((R[0]<2*L && R[1]>2*L) || (R[1]<2*L && R[0]>2*L)) printf("Demande de Caution Solidaire\n"); } } /* Cas 1 C.D.D avec n'importe qui sauf En place : cas dominé */ else { if((strcmp(statut1,status[1]) && !strcmp(statut2,status[1]) && statut2!=status[5]) || (strcmp(statut2,status[1]) && !strcmp(statut1,status[1]) && statut1!=status[5])) { if(R[1]<2*L && R[0]<2*L) printf("Impossibilité de soumettre votre dossier\n"); while((R[0]<2*L || R[0]>=2*L || R[0]>3*L && R[1]>=2*L) || ((R[1]<2*L || R[1]>=2*L || R[1]>3*L && R[0]>=2*L))) printf("Demande de Caution Solidaire\n"); if(strcmp(statut1,status[1]) && strcmp(statut2,status[2])) { while(R[0]<2*L && R[1]>=2*L) printf("Impossibilité de soumettre votre dossier\n"); while(R[0]>=2*L || R[1]>=2*L) printf("Demande de Caution Solidaire\n"); } } } } } main() { int L; int *R; char *status[6];char *statut1;char *statut2; statut1=(char*)malloc(6*(sizeof(char))); statut2=(char*)malloc(6*(sizeof(char))); L=(int)malloc(10000*(sizeof(int))); /* A vérifier -> problème d'allocation persiste(pour L,R[0],R[1])*/ R[0]=(int) malloc(10000*(sizeof(int))); R[1]= (int)malloc(10000*(sizeof(int))); printf("Indiquer la situation du premier colocataire : %s",statut1); scanf("%s",statut1); printf("Indiquer la situation du deuxième colocataire : %s",statut2); scanf("%s",statut2); printf("Indiquer le loyer du foyer : %d\n",L); scanf("%d",&L); printf("Indiquer le revenu du colocataire1 : %d\n",R[0]); scanf("%d",&R[0]); printf("Indiquer le revenu du colocataire2 : %d\n",R[1]); scanf("%d",&R[1]); colocation(R,L,statut1,statut2); }