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
771 views
in Technique[技术] by (71.8m points)

if statement - C easy program not working - "if"

I tried to write an easy program that compares 3 numbers and prints the biggest of them but it keeps printing all 3 of them and I don't get why. That's my code:

#include <stdio.h>

int main()
{
  int x = 10;
  int y = 8;
  int z = 3;

  if((x > y) && (x > z));
  {
    printf("%d",x);
  }

  if((y > x) && (y > z));
  {
    printf("%d",y);
  }
  if((z > x) && (z > y));
  {
    printf("%d",z);
  }
  return 0;

}

Thanks for the help!

See Question&Answers more detail:os

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

1 Answer

0 votes
by (71.8m points)

You should use else , you should remove the semi-colons after the if statements , the semi colons after ifs means that the body of the if is empty and the other stuff is a normal block of code

#include <stdio.h>

int main()
{

  int x = 10;
  int y = 8;
  int z = 3;


  if((x > y) && (x > z))
  {
   printf("%d",x);
  }
  else { // Will not make difference in this particular case as your conditions cannot overlap
  if((y > x) && (y > z))
  {
    printf("%d",y);
  }

  else { // Will not make difference in this particular case as your conditions cannot overlap

  if((z > x) && (z > y))
      {
    printf("%d",z);
      }
  }
}
  return 0;

}

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

...