Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. To find biggest of n numbers ?

To find biggest of n numbers ?

Scheduled Pinned Locked Moved C / C++ / MFC
question
12 Posts 6 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    Tarun Jha
    wrote on last edited by
    #1

    i need to find the biggest number, but it doesn't print the biggest number.

    #include
    #include

    int main(){

    int num\[50\], i=0, j, count =0;
    //int k;
    
    printf("Enter 0 to exit entering integers.\\n\\nEnter your integers:\\n");
    
    do{
    
    	scanf("%d", &num\[i\]);
    	i++;
    	count++;
    
    }while(num\[i-1\]!=0);
    
    for(i=0; i<=count -1; i++){
    
        for(j=0; j<=count-1; j++){
    
            if(i != j)
                num\[i\] > num\[j\];
            else
                break;
        }
    
        printf("%d is the biggest number", num\[i\]);
    }
    
    //printf("%d is the biggest number", num\[j\]);
    
    return 0;
    

    }

    J L L 3 Replies Last reply
    0
    • T Tarun Jha

      i need to find the biggest number, but it doesn't print the biggest number.

      #include
      #include

      int main(){

      int num\[50\], i=0, j, count =0;
      //int k;
      
      printf("Enter 0 to exit entering integers.\\n\\nEnter your integers:\\n");
      
      do{
      
      	scanf("%d", &num\[i\]);
      	i++;
      	count++;
      
      }while(num\[i-1\]!=0);
      
      for(i=0; i<=count -1; i++){
      
          for(j=0; j<=count-1; j++){
      
              if(i != j)
                  num\[i\] > num\[j\];
              else
                  break;
          }
      
          printf("%d is the biggest number", num\[i\]);
      }
      
      //printf("%d is the biggest number", num\[j\]);
      
      return 0;
      

      }

      J Offline
      J Offline
      jschell
      wrote on last edited by
      #2

      Tarun Jha wrote:

      num[i] > num[j];

      I suspect that you think that line is doing something that it is not. Put some curly braces around that line then print out the values before and after it.

      T 1 Reply Last reply
      0
      • J jschell

        Tarun Jha wrote:

        num[i] > num[j];

        I suspect that you think that line is doing something that it is not. Put some curly braces around that line then print out the values before and after it.

        T Offline
        T Offline
        Tarun Jha
        wrote on last edited by
        #3

        do you mean inside he inner for loop, to print value of i ?

        J 1 Reply Last reply
        0
        • T Tarun Jha

          i need to find the biggest number, but it doesn't print the biggest number.

          #include
          #include

          int main(){

          int num\[50\], i=0, j, count =0;
          //int k;
          
          printf("Enter 0 to exit entering integers.\\n\\nEnter your integers:\\n");
          
          do{
          
          	scanf("%d", &num\[i\]);
          	i++;
          	count++;
          
          }while(num\[i-1\]!=0);
          
          for(i=0; i<=count -1; i++){
          
              for(j=0; j<=count-1; j++){
          
                  if(i != j)
                      num\[i\] > num\[j\];
                  else
                      break;
              }
          
              printf("%d is the biggest number", num\[i\]);
          }
          
          //printf("%d is the biggest number", num\[j\]);
          
          return 0;
          

          }

          L Offline
          L Offline
          Lost User
          wrote on last edited by
          #4

          Most of that code is redundant, all you need is something like:

          int num = -1, largest = 0;

          do{
          printf("Enter an integer, 0 to exit:\n");

          scanf("%d", &num);
          if (num > largest)
              largest = num;
          

          }while(num != 0);
          printf("%d is the biggest number", largest);

          T 1 Reply Last reply
          0
          • L Lost User

            Most of that code is redundant, all you need is something like:

            int num = -1, largest = 0;

            do{
            printf("Enter an integer, 0 to exit:\n");

            scanf("%d", &num);
            if (num > largest)
                largest = num;
            

            }while(num != 0);
            printf("%d is the biggest number", largest);

            T Offline
            T Offline
            Tarun Jha
            wrote on last edited by
            #5

            I know that method but i need to know what is wrong with the one i am working with.

            J L 2 Replies Last reply
            0
            • T Tarun Jha

              I know that method but i need to know what is wrong with the one i am working with.

              J Offline
              J Offline
              jeron1
              wrote on last edited by
              #6

              Start with the hint that jschell gave, look at that line of code and see what it is doing if anything, or better yet step though each line of code with a debugger.

              "the debugger doesn't tell me anything because this code compiles just fine" - random QA comment "Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst "I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle

              1 Reply Last reply
              0
              • T Tarun Jha

                i need to find the biggest number, but it doesn't print the biggest number.

                #include
                #include

                int main(){

                int num\[50\], i=0, j, count =0;
                //int k;
                
                printf("Enter 0 to exit entering integers.\\n\\nEnter your integers:\\n");
                
                do{
                
                	scanf("%d", &num\[i\]);
                	i++;
                	count++;
                
                }while(num\[i-1\]!=0);
                
                for(i=0; i<=count -1; i++){
                
                    for(j=0; j<=count-1; j++){
                
                        if(i != j)
                            num\[i\] > num\[j\];
                        else
                            break;
                    }
                
                    printf("%d is the biggest number", num\[i\]);
                }
                
                //printf("%d is the biggest number", num\[j\]);
                
                return 0;
                

                }

                L Offline
                L Offline
                leon de boer
                wrote on last edited by
                #7

                The problem is obvious

                if(i != j)
                num[i] > num[j];
                else
                break;

                Start with i=0 j = 0 what does the break do ... i==j doesn't it so it will call the break .. single step debug and watch :-)

                In vino veritas

                1 Reply Last reply
                0
                • T Tarun Jha

                  I know that method but i need to know what is wrong with the one i am working with.

                  L Offline
                  L Offline
                  Lost User
                  wrote on last edited by
                  #8

                  Tarun Jha wrote:

                  what is wrong with the one i am working with.

                  Your second loop makes no sense as you are using two index varaibles when you only need one, and you never compare the values to see which is largest, or keep a note of the largest value you have found so far.

                  T 1 Reply Last reply
                  0
                  • L Lost User

                    Tarun Jha wrote:

                    what is wrong with the one i am working with.

                    Your second loop makes no sense as you are using two index varaibles when you only need one, and you never compare the values to see which is largest, or keep a note of the largest value you have found so far.

                    T Offline
                    T Offline
                    Tarun Jha
                    wrote on last edited by
                    #9

                    ohh! :omg: Thank you. but the code written below only works some time.. :sigh:

                    #include
                    #include

                    int main(){

                    int num\[50\], i=0, j, count =0;
                    int k, b;
                    
                    printf("Enter 0 to exit entering integers.\\n\\nEnter your integers:\\n");
                    
                    do{
                    
                    	scanf("%d", &num\[i\]);
                    	i++;
                    	count++;
                    
                    }while(num\[i-1\]!=0);
                    
                    for(k=0; k<=count-2; k++){
                    
                        for(j=0; j<=count-2; j++){
                    
                            if(k != j){
                                num\[k\] > num\[j\];
                                b = k;
                            	//printf("%d", num\[k\]);
                            	continue;
                    			}
                            else
                                break;
                        }
                        //printf("%d is the biggest number \\n", num\[k\]);
                    }
                    
                    printf("%d is the biggest number", num\[b\]);
                    
                    return 0;
                    

                    }

                    D L 2 Replies Last reply
                    0
                    • T Tarun Jha

                      ohh! :omg: Thank you. but the code written below only works some time.. :sigh:

                      #include
                      #include

                      int main(){

                      int num\[50\], i=0, j, count =0;
                      int k, b;
                      
                      printf("Enter 0 to exit entering integers.\\n\\nEnter your integers:\\n");
                      
                      do{
                      
                      	scanf("%d", &num\[i\]);
                      	i++;
                      	count++;
                      
                      }while(num\[i-1\]!=0);
                      
                      for(k=0; k<=count-2; k++){
                      
                          for(j=0; j<=count-2; j++){
                      
                              if(k != j){
                                  num\[k\] > num\[j\];
                                  b = k;
                              	//printf("%d", num\[k\]);
                              	continue;
                      			}
                              else
                                  break;
                          }
                          //printf("%d is the biggest number \\n", num\[k\]);
                      }
                      
                      printf("%d is the biggest number", num\[b\]);
                      
                      return 0;
                      

                      }

                      D Offline
                      D Offline
                      David Crow
                      wrote on last edited by
                      #10

                      Tarun Jha wrote:

                      ...only works some time

                      Which technically means it does not work. If your algorithm is dependent upon its input in order to produce the correct output, it is wrong, period. You should be able to do this entire exercise using pencil and paper before ever committing anything to code. Short of that and you are just guessing (hoping) at best.

                      "One man's wage rise is another man's price increase." - Harold Wilson

                      "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

                      "You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles

                      1 Reply Last reply
                      0
                      • T Tarun Jha

                        ohh! :omg: Thank you. but the code written below only works some time.. :sigh:

                        #include
                        #include

                        int main(){

                        int num\[50\], i=0, j, count =0;
                        int k, b;
                        
                        printf("Enter 0 to exit entering integers.\\n\\nEnter your integers:\\n");
                        
                        do{
                        
                        	scanf("%d", &num\[i\]);
                        	i++;
                        	count++;
                        
                        }while(num\[i-1\]!=0);
                        
                        for(k=0; k<=count-2; k++){
                        
                            for(j=0; j<=count-2; j++){
                        
                                if(k != j){
                                    num\[k\] > num\[j\];
                                    b = k;
                                	//printf("%d", num\[k\]);
                                	continue;
                        			}
                                else
                                    break;
                            }
                            //printf("%d is the biggest number \\n", num\[k\]);
                        }
                        
                        printf("%d is the biggest number", num\[b\]);
                        
                        return 0;
                        

                        }

                        L Offline
                        L Offline
                        Lost User
                        wrote on last edited by
                        #11

                        Yes, because your code is still wrong, mainly because there is no logic to it. I gave you the answer in a previous comment, which should at least give you an idea of the logic involved in such a simple task.

                        1 Reply Last reply
                        0
                        • T Tarun Jha

                          do you mean inside he inner for loop, to print value of i ?

                          J Offline
                          J Offline
                          jschell
                          wrote on last edited by
                          #12

                          Print i,j and the array values of each before and after that line.

                          1 Reply Last reply
                          0
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          • Login

                          • Don't have an account? Register

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • World
                          • Users
                          • Groups