Skip to main content
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user

I have gotten most of my code to work for the search and sort, but I still have a few issues. One is i my for loop, I have it set to less than 100, though I need to make it less than log n, but I tried to do that and could not get it to work. The second issue is that if you do ./find 42, and your numbers are 39 40 41 43, it still finds 42. Thanks for the help, my code is: `/**

  • helpers.c
  • Helper functions for Problem Set 3. */

#include <cs50.h> #include <stdio.h> #include "helpers.h" #include <math.h>

/**

  • Returns true if value is in array of n values, else false. */ bool search(int value, int values[], int n) { if (value < 0) { return false; } int low = values[0]; int high = values[n - 1]; int mid = (low + high) / 2; //printf("Low: %i Mid: %i High %i\n", low, mid, high); for (int i = 0; i < 100; i++) {

     if (mid == value) {
         return true;
     }
    
     else if (mid < value) {
         low = mid + 1;
         mid = (low + high) / 2;
     }
    
     else {
         high = mid - 1;
         mid = (low + high) / 2;
     }
    

    } //printf("Low: %i Mid: %i High %i\n", low, mid, high); //TODO: implement a searching algorithm return false; }

/**

  • Sorts array of n values. */ void sort(int values[], int n) { int swapcount = 1;
    //int iterations = 0; //int swapcount = 1; /if (n == 1) { return; }/

         for (int i = 0; i < n-1 ; i++) {
             if (values[i] > values[i + 1]) {
                 printf("before swap %i, %i\n", values[i], values[i + 1]);
                 int temp = values[i];
                 values[i] = values[i + 1];
                 values[i + 1] = temp;
                 printf("after swap %i, %i,\n", values[i], values[i + 1]);
                 swapcount++;
             }
    
             /*else {
                 printf("Nothing to swap\n");
             }*/
    
             /*for (int j = 0; j < n; j++) {
                     printf("%i\n", values[j]);
             }*/
         }
         //return 0;
     if (swapcount == 1) {
         return;
         for (int j = 0; j < n; j++) {
             printf("Sorted array is %i", values[j]);
         }
    
     }
    
         //iterations ++;
         /*printf("%i Iterations\n", iterations);*/
         /*printf("Sorted is\n");
         for (int j = 0; j < n; j++) {
             printf("%i\n", values[j]);
         }*/
         //printf("Your swapcount is %i\n", swapcount);
         printf("%i swaps\n", swapcount);
         for (int w = 0; w < n; w++) {
             printf("array is %i\n", values[w]);
         }
         sort(values, n - 1);
    

    // TODO: implement a sorting algorithm //return; } `

 /**
 * helpers.c
 *
 * Helper functions for Problem Set 3.
 */
 
#include <cs50.h>
#include <stdio.h>
#include "helpers.h"
#include <math.h>

/**
 * Returns true if value is in array of n values, else false.
 */
bool search(int value, int values[], int n)
{
    if (value < 0) {
        return false;
    }
    int low = values[0];
    int high = values[n - 1];
    int mid = (low + high) / 2;
    //printf("Low: %i Mid: %i High %i\n", low, mid, high);
    for (int i = 0; i < 100; i++) {
        
        if (mid == value) {
            return true;
        }
    
        else if (mid < value) {
            low = mid + 1;
            mid = (low + high) / 2;
        }
        
        else {
            high = mid - 1;
            mid = (low + high) / 2;
        }
    }
    //printf("Low: %i Mid: %i High %i\n", low, mid, high);
     //TODO: implement a searching algorithm
    return false;
}

/**
 * Sorts array of n values.
 */
void sort(int values[], int n)
{
    int swapcount = 1;   
    //int iterations = 0;
    //int swapcount = 1;
        /*if (n == 1) {
            return;
        }*/
        
        
             
            for (int i = 0; i < n-1 ; i++) {
                if (values[i] > values[i + 1]) {
                    printf("before swap %i, %i\n", values[i], values[i + 1]);
                    int temp = values[i];
                    values[i] = values[i + 1];
                    values[i + 1] = temp;
                    printf("after swap %i, %i,\n", values[i], values[i + 1]);
                    swapcount++;
                }
        
                /*else {
                    printf("Nothing to swap\n");
                }*/
        
                /*for (int j = 0; j < n; j++) {
                        printf("%i\n", values[j]);
                }*/
            }
            //return 0;
        if (swapcount == 1) {
            return;
            for (int j = 0; j < n; j++) {
                printf("Sorted array is %i", values[j]);
            }
            
        }
            
            //iterations ++;
            /*printf("%i Iterations\n", iterations);*/
            /*printf("Sorted is\n");
            for (int j = 0; j < n; j++) {
                printf("%i\n", values[j]);
            }*/
            //printf("Your swapcount is %i\n", swapcount);
            printf("%i swaps\n", swapcount);
            for (int w = 0; w < n; w++) {
                printf("array is %i\n", values[w]);
            }
            sort(values, n - 1);
            

    // TODO: implement a sorting algorithm
    //return;
}

I have gotten most of my code to work for the search and sort, but I still have a few issues. One is i my for loop, I have it set to less than 100, though I need to make it less than log n, but I tried to do that and could not get it to work. The second issue is that if you do ./find 42, and your numbers are 39 40 41 43, it still finds 42. Thanks for the help, my code is: `/**

  • helpers.c
  • Helper functions for Problem Set 3. */

#include <cs50.h> #include <stdio.h> #include "helpers.h" #include <math.h>

/**

  • Returns true if value is in array of n values, else false. */ bool search(int value, int values[], int n) { if (value < 0) { return false; } int low = values[0]; int high = values[n - 1]; int mid = (low + high) / 2; //printf("Low: %i Mid: %i High %i\n", low, mid, high); for (int i = 0; i < 100; i++) {

     if (mid == value) {
         return true;
     }
    
     else if (mid < value) {
         low = mid + 1;
         mid = (low + high) / 2;
     }
    
     else {
         high = mid - 1;
         mid = (low + high) / 2;
     }
    

    } //printf("Low: %i Mid: %i High %i\n", low, mid, high); //TODO: implement a searching algorithm return false; }

/**

  • Sorts array of n values. */ void sort(int values[], int n) { int swapcount = 1;
    //int iterations = 0; //int swapcount = 1; /if (n == 1) { return; }/

         for (int i = 0; i < n-1 ; i++) {
             if (values[i] > values[i + 1]) {
                 printf("before swap %i, %i\n", values[i], values[i + 1]);
                 int temp = values[i];
                 values[i] = values[i + 1];
                 values[i + 1] = temp;
                 printf("after swap %i, %i,\n", values[i], values[i + 1]);
                 swapcount++;
             }
    
             /*else {
                 printf("Nothing to swap\n");
             }*/
    
             /*for (int j = 0; j < n; j++) {
                     printf("%i\n", values[j]);
             }*/
         }
         //return 0;
     if (swapcount == 1) {
         return;
         for (int j = 0; j < n; j++) {
             printf("Sorted array is %i", values[j]);
         }
    
     }
    
         //iterations ++;
         /*printf("%i Iterations\n", iterations);*/
         /*printf("Sorted is\n");
         for (int j = 0; j < n; j++) {
             printf("%i\n", values[j]);
         }*/
         //printf("Your swapcount is %i\n", swapcount);
         printf("%i swaps\n", swapcount);
         for (int w = 0; w < n; w++) {
             printf("array is %i\n", values[w]);
         }
         sort(values, n - 1);
    

    // TODO: implement a sorting algorithm //return; } `

I have gotten most of my code to work for the search and sort, but I still have a few issues. One is i my for loop, I have it set to less than 100, though I need to make it less than log n, but I tried to do that and could not get it to work. The second issue is that if you do ./find 42, and your numbers are 39 40 41 43, it still finds 42. Thanks for the help, my code is:

 /**
 * helpers.c
 *
 * Helper functions for Problem Set 3.
 */
 
#include <cs50.h>
#include <stdio.h>
#include "helpers.h"
#include <math.h>

/**
 * Returns true if value is in array of n values, else false.
 */
bool search(int value, int values[], int n)
{
    if (value < 0) {
        return false;
    }
    int low = values[0];
    int high = values[n - 1];
    int mid = (low + high) / 2;
    //printf("Low: %i Mid: %i High %i\n", low, mid, high);
    for (int i = 0; i < 100; i++) {
        
        if (mid == value) {
            return true;
        }
    
        else if (mid < value) {
            low = mid + 1;
            mid = (low + high) / 2;
        }
        
        else {
            high = mid - 1;
            mid = (low + high) / 2;
        }
    }
    //printf("Low: %i Mid: %i High %i\n", low, mid, high);
     //TODO: implement a searching algorithm
    return false;
}

/**
 * Sorts array of n values.
 */
void sort(int values[], int n)
{
    int swapcount = 1;   
    //int iterations = 0;
    //int swapcount = 1;
        /*if (n == 1) {
            return;
        }*/
        
        
             
            for (int i = 0; i < n-1 ; i++) {
                if (values[i] > values[i + 1]) {
                    printf("before swap %i, %i\n", values[i], values[i + 1]);
                    int temp = values[i];
                    values[i] = values[i + 1];
                    values[i + 1] = temp;
                    printf("after swap %i, %i,\n", values[i], values[i + 1]);
                    swapcount++;
                }
        
                /*else {
                    printf("Nothing to swap\n");
                }*/
        
                /*for (int j = 0; j < n; j++) {
                        printf("%i\n", values[j]);
                }*/
            }
            //return 0;
        if (swapcount == 1) {
            return;
            for (int j = 0; j < n; j++) {
                printf("Sorted array is %i", values[j]);
            }
            
        }
            
            //iterations ++;
            /*printf("%i Iterations\n", iterations);*/
            /*printf("Sorted is\n");
            for (int j = 0; j < n; j++) {
                printf("%i\n", values[j]);
            }*/
            //printf("Your swapcount is %i\n", swapcount);
            printf("%i swaps\n", swapcount);
            for (int w = 0; w < n; w++) {
                printf("array is %i\n", values[w]);
            }
            sort(values, n - 1);
            

    // TODO: implement a sorting algorithm
    //return;
}
Source Link

Check 50 for find

I have gotten most of my code to work for the search and sort, but I still have a few issues. One is i my for loop, I have it set to less than 100, though I need to make it less than log n, but I tried to do that and could not get it to work. The second issue is that if you do ./find 42, and your numbers are 39 40 41 43, it still finds 42. Thanks for the help, my code is: `/**

  • helpers.c
  • Helper functions for Problem Set 3. */

#include <cs50.h> #include <stdio.h> #include "helpers.h" #include <math.h>

/**

  • Returns true if value is in array of n values, else false. */ bool search(int value, int values[], int n) { if (value < 0) { return false; } int low = values[0]; int high = values[n - 1]; int mid = (low + high) / 2; //printf("Low: %i Mid: %i High %i\n", low, mid, high); for (int i = 0; i < 100; i++) {

     if (mid == value) {
         return true;
     }
    
     else if (mid < value) {
         low = mid + 1;
         mid = (low + high) / 2;
     }
    
     else {
         high = mid - 1;
         mid = (low + high) / 2;
     }
    

    } //printf("Low: %i Mid: %i High %i\n", low, mid, high); //TODO: implement a searching algorithm return false; }

/**

  • Sorts array of n values. */ void sort(int values[], int n) { int swapcount = 1;
    //int iterations = 0; //int swapcount = 1; /if (n == 1) { return; }/

         for (int i = 0; i < n-1 ; i++) {
             if (values[i] > values[i + 1]) {
                 printf("before swap %i, %i\n", values[i], values[i + 1]);
                 int temp = values[i];
                 values[i] = values[i + 1];
                 values[i + 1] = temp;
                 printf("after swap %i, %i,\n", values[i], values[i + 1]);
                 swapcount++;
             }
    
             /*else {
                 printf("Nothing to swap\n");
             }*/
    
             /*for (int j = 0; j < n; j++) {
                     printf("%i\n", values[j]);
             }*/
         }
         //return 0;
     if (swapcount == 1) {
         return;
         for (int j = 0; j < n; j++) {
             printf("Sorted array is %i", values[j]);
         }
    
     }
    
         //iterations ++;
         /*printf("%i Iterations\n", iterations);*/
         /*printf("Sorted is\n");
         for (int j = 0; j < n; j++) {
             printf("%i\n", values[j]);
         }*/
         //printf("Your swapcount is %i\n", swapcount);
         printf("%i swaps\n", swapcount);
         for (int w = 0; w < n; w++) {
             printf("array is %i\n", values[w]);
         }
         sort(values, n - 1);
    

    // TODO: implement a sorting algorithm //return; } `