Je suis nouveau langage C et le codage et je rencontrais une question me demandant de changer l'en-tête de fonction:Comment retourner une valeur avec la fonction vide sans paramètre c
float RealRoot_1(float a, float b, float c);
float RealRoot_2(float a,float b,float c);
pour devenir:
void RealRoot_1(void);
void RealRoot_2(void);
On m'a dit que cela avait quelque chose à voir avec les variables globales mais je n'arrivais toujours pas à le comprendre après avoir essayé assez longtemps. Quelqu'un peut-il expliquer s'il vous plaît sur la façon de le faire? Merci beaucoup.
Le fichier source est comme ci-dessous:
#include<stdio.h>
#include<math.h>
int main()
{
float RealRoot_1(float a, float b, float c); // Prototype declaration
float RealRoot_2(float a, float b, float c);
// Defining Input Variables
float x, y, z;
// Defining Output Variables
float Root_1, Root_2;
printf("Please enter the factor of X^2: ");
scanf("%f",&x);
printf("Please enter the factor of X: ");
scanf("%f",&y);
printf("Please enter the free factor: ");
scanf("%f",&z);
Root_1 = RealRoot_1(x,y,z);
Root_2 = RealRoot_2(x,y,z);
printf("the First Root is: %f \n", Root_1);
printf("the Second Root is: %f \n", Root_2);
system("pause");
}
float RealRoot_1(float a, float b, float c)
{
float x;
x = (-1*b + sqrt(pow(b,2) - 4 * a * c))/(2 * a);
return x;
}
float RealRoot_2(float a, float b, float c)
{
float x;
x = (-1*b - sqrt(pow(b,2) - 4 * a * c))/(2 * a);
return x;
}
Je ne comprends pas, cela ressemble à une assez mauvaise idée. Juste parce que vous pouvez faire quelque chose ne veut pas dire que vous devez le faire. –
Déclarez le prototype au-dessus du principal(). –
Doit être d'accord avec @Sourav ici, nous avons passé la majeure partie des 40 dernières années à se diriger vers _more_ encapsulation. Les variables globales sont généralement une mauvaise idée. Donc, oui, cela peut être fait mais, dans l'intérêt d'un bon code (et pour éviter la possibilité que mes enfants ou moi ayons à entretenir de telles monstruosités), je ne vais pas vous dire comment :-) – paxdiablo