Produit des elements [Résolu]

Messages postés
28
Date d'inscription
vendredi 6 mars 2015
Statut
Membre
Dernière intervention
18 octobre 2017
- - Dernière réponse : KX
Messages postés
16076
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
21 novembre 2019
- 8 sept. 2015 à 19:12
Bonsoir, comment allez-vous ?
Voilà, depuis la semaine dernière je voulais résoudre un programme en c, qui affiche "la somme des éléments impairs du résultat du produit de deux vecteurs d'entier [N].
Je me confie a vous, parce que je ne sais quoi faire. J'ai commencé mais. A chaque fois que j'essaye de compliler le programme ça m'affiche des messages d'erreurs.
Afficher la suite 

8 réponses

Messages postés
16076
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
21 novembre 2019
88
0
Merci
Bonjour,

Sans le code qui pose problème, comment pourriez nous t'aider à corriger les erreurs ? On ne peux pas le deviner...

Remarque : pour mettre en forme le code sur le forum merci d'utiliser les balises <code c></code>
Commenter la réponse de KX
Messages postés
28
Date d'inscription
vendredi 6 mars 2015
Statut
Membre
Dernière intervention
18 octobre 2017
0
Merci
ben voila , j'ai essaye de faire le produit des deux vecteurs,
en commençant par:
#include<stdio.h>
#include<conio.h>
int v1[dim],v2[dim],vp[dim];
int i,n,j,temp;
main(){
do{
printf("\n Entrer la dimension des vecteurs :");
scanf("%d",&n);
}while(n<2);
for(i=0;i<n;i++){
printf("Entrer le %d element du 1er vecteur :",i+1);
scanf("%d",&v1[i]);
}
for(i=0;i<n;i++){
printf("Entrer le %d element du 2e vecteur :",i+1);
scanf("%d",&v2[i]);
}
for(i=0;i<n;i++){
printf("%d\t",v1[i]);
}
for(i=0;i<n;i++){
printf("%d\t",v2[i]);
}
for(i=0;i<n;i++){
vp[i]=v1[i]*v2[i];
}
printf("\nProduit des deux\n");
for(i=0;i<n;i++){
printf("%d\t",vp[i]);
}
mais il m'affice erreurs
Commenter la réponse de flx509
Messages postés
16076
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
21 novembre 2019
88
0
Merci
J'ai pas de compilateur pour tester et voir quelles erreurs ça t'affiche, mais à vue de nez je dirais que dim n'est pas défini donc il est incapable de créer des tableaux à la bonne taille.
Commenter la réponse de KX
Messages postés
28
Date d'inscription
vendredi 6 mars 2015
Statut
Membre
Dernière intervention
18 octobre 2017
0
Merci
ce que je voulais faire c'est de creer le programme, pour que l'utilisateur entre lui même sa taille du tableau
Commenter la réponse de flx509
Messages postés
16076
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
21 novembre 2019
88
0
Merci
Là tu parles de n, mais moi je parle de dim...
Commenter la réponse de KX
Messages postés
3801
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 novembre 2019
90
0
Merci
Bonjour.

Tu n'étais pas très "loin". C'est simplement que tu confonds "dim" et "n", comme l'a dit KX. Pour corriger cela, on va déclarer des tableaux de dimensions volontairement trop grand (c'est plus simple si tu débutes). On va prendre 128. "size" représentera la taille réelle de tes tableaux.

Quelques remarques:
  • Pas besoin de conio.h
  • Pleins de variables déclarées, mais pas utilisées.
  • Évite les variables "globales", c-à-d en déclarées en dehors des fonctions, et donc accessibles par n'importe quelles fonctions.
  • La fonction main retourne un entier.


En reprenant ton code modifié, cela donne:
#include <stdio.h>

int main()
{
  int v1[128];
  int v2[128];
  int vp[128];
  int i;
  int size;

  do
  {
    printf("\n Entrez la dimension des vecteurs: ");
    scanf("%d", &size);
  }
  while (size < 2);

  for (i = 0; i < size; i++)
  {
    printf("Entrez le %d element du 1er vecteur: ", i + 1);
    scanf("%d", &v1[i]);
  }
  for (i = 0; i < size; i++)
  {
    printf("Entrez le %d element du 2e vecteur: ", i + 1);
    scanf("%d", &v2[i]);
  }

  for (i = 0; i < size; i++)
    printf("%d\t", v1[i]);
  printf("\n");

  for (i = 0; i < size; i++)
    printf("%d\t", v2[i]);
  printf("\n");

  for (i = 0; i < size; i++)
    vp[i] = v1[i] * v2[i];

  printf("\nProduit des deux:\n");
  for (i = 0; i < size; i++)
    printf("%d\t", vp[i]);
  printf("\n");

  return 0;
}


PS: La prochaine fois, n'oublie pas les balises de code, comme te l'a indiqué KX. Pas de balises de code == pas d'aide.


Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
Commenter la réponse de cptpingu
Messages postés
28
Date d'inscription
vendredi 6 mars 2015
Statut
Membre
Dernière intervention
18 octobre 2017
0
Merci
Ok mecri, je vais essayé de le compiler pour voir ce que ça donne.
Merci pour vos remarques
Commenter la réponse de flx509
Messages postés
16076
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
21 novembre 2019
88
0
Merci
Une remarque au passage. Il serait cohérent de compléter le test while(n<2) pour vérifier que n ne soit pas supérieur à la capacité du tableau (128 dans l'exemple)
Commenter la réponse de KX