Search code examples
cinitializationargumentsfunction-definition

Why am I always getting 0 always after running my c program? Kindly help me out


     #include<stdio.h>
     #include<math.h>

     float distance(float a,float b,float c,float d);


      int main()

      {
    float x1,y1,x2,y2,dist;
    printf("Input x1: ");
    scanf("%f", &x1);
     printf("Input y1: ");
      scanf("%f", &y1);
          printf("Input x2: ");
      scanf("%f", &x2);
       printf("Input y2: ");
      scanf("%f", &y2);
       distance(x1,x2,y1,y2);
      printf("Distance between the given points is: %.2f",sqrt(dist));

     return 0;
      }
    float distance(float a,float b,float c,float d)
   {
    float x1,x2,y1,y2,dist;
   dist=((x2-x1)*(x2-x1) +(y2-y1)*(y2-y1));
  return dist;
    }

Here the output is always 0, don't know why. I have tried putting float and integers still getting 0.

IGNORE THIS PART OF QUESTION. WRITING THIS TO SATISFY THE CRITERIA TO POST.


Solution

  • `x1,x2,y1,y2` and `dist` not initialized that was the problem :)
    
    #include<stdio.h>
             #include<math.h>
    #define _CRT_SECURE_NO_WARNINGS
        
             float distance(float a,float b,float c,float d);
        
        
              int main()
        
              {
            float x1,y1,x2,y2,dist;
            printf("Input x1: ");
            scanf("%f", &x1);
             printf("Input y1: ");
              scanf("%f", &y1);
                  printf("Input x2: ");
              scanf("%f", &x2);
               printf("Input y2: ");
              scanf("%f", &y2);
               dist=distance(x1,x2,y1,y2);//you didn't put the value of the func into a variable
              printf("Distance between the given points is: %.2f",sqrt(dist));
        
             return 0;
              }
            float distance(float a,float b,float c,float d)//since we already give a,b,c,d a value from calling the func in main
           {
            float dist;
           dist=((b-a)*(b-a) +(d-c)*(d-c));//we just swapped you x1,x2,y1,y2 to the a,b,c,d 
          return dist;
            }