Programme en c

Fermé
AMONA21 Messages postés 4 Date d'inscription samedi 3 mars 2012 Statut Membre Dernière intervention 4 mars 2012 - 3 mars 2012 à 15:54
AMONA21 Messages postés 4 Date d'inscription samedi 3 mars 2012 Statut Membre Dernière intervention 4 mars 2012 - 4 mars 2012 à 18:33
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

doctormad Messages postés 430 Date d'inscription mercredi 28 novembre 2007 Statut Membre Dernière intervention 2 avril 2015 99
3 mars 2012 à 16:45
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
AMONA21 Messages postés 4 Date d'inscription samedi 3 mars 2012 Statut Membre Dernière intervention 4 mars 2012
3 mars 2012 à 17:59
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
doctormad Messages postés 430 Date d'inscription mercredi 28 novembre 2007 Statut Membre Dernière intervention 2 avril 2015 99
3 mars 2012 à 18:17
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
wargamer Messages postés 128 Date d'inscription mercredi 25 janvier 2012 Statut Membre Dernière intervention 3 mars 2013 10
4 mars 2012 à 01:39
vous aller sur quelle programme pour executer ses commandes *?
0
AMONA21 Messages postés 4 Date d'inscription samedi 3 mars 2012 Statut Membre Dernière intervention 4 mars 2012
4 mars 2012 à 18:33
bonjour merci infiniment pour vous conseils maintenant il marche bien
sur devc++
0