Programme en c
AMONA21
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
AMONA21 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
AMONA21 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
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;
}
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
-
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à. -
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. -
vous aller sur quelle programme pour executer ses commandes *?
-
bonjour merci infiniment pour vous conseils maintenant il marche bien
sur devc++