Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.3k views
in Technique[技术] by (71.8m points)

initialization - 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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
`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;
        }

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...