Programme en c

bonjour, voila j'ai un probleme a resoudre en c j'ai un tableau a de n>2 sans aucun element duplique on cherche 2 elements x et y dans a tel que x+y= 0;
voila le programme que j'ai fait mais sa marche pas je sais pas comment retourner deux valeur par unefonction ,pouvez vous me corriger mon programme merci infiniment
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct MUL
{ int x;
int y;
};
int search( MUL a[] ,int n)
{
int i,j;
for(i=0;i<n-1;i++){
if(a[i]<0){
for(j=i+1;j<n;j++){
if(a[j]==-a[i])
return (i,j);}}
else return (0,0);
}

return (0,0);
}
int main()
{
int a[7]={-5,-4,-1,2,4,5,6};
int j,i;
for(i=0;i<7;i++)
printf("%d",a[i]);
search(*a,7);
for(i=0;i<6;i++)
for(j=i+1;i<7;j++)
printf("les element sont %d, %d :",a[i].x,a[j].y);

for(j=i+1;i<7;j++)

// printf("les element sont %d :",a[j]);
getch();
return 0;

}

4 réponses

  1. Salut,

    En effet tu ne peux pas retourner deux valeurs dans une fonction, c'est valable pour beaucoup de langages.

    Tu as comme solution de retourner un tableau ou un objet qui englobe plusieurs valeurs.

    Dans ton cas tu pourrais par exemple utiliser la structure qui existe déjà.
    0
    1. merci infiniment pour votre reponse
      mais pourquoi ne fonctionne pas ce programme meme que j'ai utilise la structure il ne retourne aucune valeur et il n'ya aucune erreur de compilation
      0
  2. Eh bien déjà il faut remplacer le "return (i,j)" par un retour avec une structure :

    struct MUL struct1;
    struct1.x = i;
    struct1.y = j;
    return struct1;

    Et puis après il faut récupérer le retour dans le code principal :

    struct MUL struct2;
    struct2 = search(*a, 7);

    Et puis s'en servir :)

    ...bon en y regardant de plus près en fait il y plusieurs problèmes dans ton code, par exemple ta fonction search prend en paramètre un tableau de MUL, or tu l'appelles avec un tableau d'int, je n'ai pas testé le code mais cela m'étonne que l'exécution passe sans erreur.
    0
    1. vous aller sur quelle programme pour executer ses commandes *?
      0
      1. bonjour merci infiniment pour vous conseils maintenant il marche bien
        sur devc++
        0