Produit des elements [Résolu]

flx509 28 Messages postés vendredi 6 mars 2015Date d'inscription 18 octobre 2017 Dernière intervention - 7 sept. 2015 à 21:13 - Dernière réponse : KX 15141 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 10 janvier 2018 Dernière intervention
- 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

Répondre au sujet
KX 15141 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 10 janvier 2018 Dernière intervention - 7 sept. 2015 à 21:45
0
Utile
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
flx509 28 Messages postés vendredi 6 mars 2015Date d'inscription 18 octobre 2017 Dernière intervention - 7 sept. 2015 à 21:52
0
Utile
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
KX 15141 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 10 janvier 2018 Dernière intervention - 8 sept. 2015 à 00:01
0
Utile
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
flx509 28 Messages postés vendredi 6 mars 2015Date d'inscription 18 octobre 2017 Dernière intervention - 8 sept. 2015 à 00:09
0
Utile
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
KX 15141 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 10 janvier 2018 Dernière intervention - 8 sept. 2015 à 08:22
0
Utile
Là tu parles de n, mais moi je parle de dim...
Commenter la réponse de KX
cptpingu 3771 Messages postés dimanche 12 décembre 2004Date d'inscriptionModérateurStatut 7 janvier 2018 Dernière intervention - Modifié par cptpingu le 8/09/2015 à 10:57
0
Utile
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
flx509 28 Messages postés vendredi 6 mars 2015Date d'inscription 18 octobre 2017 Dernière intervention - 8 sept. 2015 à 14:09
0
Utile
Ok mecri, je vais essayé de le compiler pour voir ce que ça donne.
Merci pour vos remarques
Commenter la réponse de flx509
KX 15141 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 10 janvier 2018 Dernière intervention - 8 sept. 2015 à 19:12
0
Utile
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.