Programme en c
AMONA21
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
AMONA21 Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
AMONA21 Messages postés 4 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;
}
A voir également:
- Programme en c
- Programme demarrage windows - Guide
- Mettre en veille un programme - Guide
- Message programmé iphone - Guide
- Programme word gratuit - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
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à.
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.
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.
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