Question

In: Computer Science

Is there a shortcut or simpler way to get the same output in C ? #include...

Is there a shortcut or simpler way to get the same output in C ?

#include <stdio.h>

#include <time.h>

#include <stdlib.h>

#define OFFSET 1

#define RANGE 53

int RandomInteger(int, int);

int PrintInstructions();

int main()

{

//six integer variables

int a, b, c, d, e, f;

//one integer for num of sets

int numSets;

srand(time(NULL));

while (1)

{

int i;

numSets = PrintInstructions();

if (numSets == 0)

{

printf("* You have choosen to exit the application.\n");

break;

}

for (i = 1; i <= numSets; i++)

{

a = RandomInteger(RANGE, OFFSET);

do

{

b = RandomInteger(RANGE, OFFSET);

} while (b == a);

do

{

c = RandomInteger(RANGE, OFFSET);

} while (c == a || c == b);

do

{

d = RandomInteger(RANGE, OFFSET);

} while (d == a || d == b || d == c);

do

{

e = RandomInteger(RANGE, OFFSET);

} while (e == a || e == b || e == c || e == d);

do

{

f = RandomInteger(RANGE, OFFSET);

} while (f == a || f == b || f == c || f == d || f == e);

printf("* Set # %d of six numbers is: %d %d %d %d %d %d\n", i, a, b, c, d, e, f);

}

}

return 0;

}

int RandomInteger(int range, int offset)

{

int randomNum = rand() % RANGE + OFFSET;

return randomNum;

}

int PrintInstructions()

{

int numSets = 0;

printf("*************************************************************************\n");

printf(" Enter in the number of randomly generated sets of numbers you want or \n");

printf(" enter in a 'q' or 'Q' to quit. \n");

printf("*************************************************************************\n");

printf("* Your Input: ");

scanf("%d", &numSets);

return numSets;

}

Solutions

Expert Solution

Modified Program :

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

#define OFFSET 1
#define RANGE 53

int RandomInteger();
int PrintInstructions();

int main()

{
        //six integer variables
        int a, b, c, d, e, f;

        //one integer for num of sets
        int numSets;

        srand(time(NULL));

        while (1){
                int i;
                numSets = PrintInstructions();
                if (numSets == 0){
                        printf("* You have choosen to exit the application.\n");
                        break;
                }

                for (i = 1; i <= numSets; i++){
                        a = RandomInteger();
                        do
                        {
                                b = RandomInteger();
                                c = RandomInteger();
                                d = RandomInteger();
                                e = RandomInteger();
                                f = RandomInteger();
                        }while(b==a || c == a || c == b || d == a || d == b || d == c || e == a || e == b || e == c || e == d || f == a || f == b || f == c || f == d || f == e);
                
                        printf("* Set # %d of six numbers is: %d %d %d %d %d %d\n", i, a, b, c, d, e, f);
                }

        }       
        return 0;
}

int RandomInteger(){
        int randomNum = rand() % RANGE + OFFSET;
        return randomNum;
}

int PrintInstructions(){
        int numSets = 0;

        printf("*************************************************************************\n");
        printf(" Enter in the number of randomly generated sets of numbers you want or \n");
        printf(" enter in a 'q' or 'Q' to quit. \n");
        printf("*************************************************************************\n");

        printf("* Your Input: ");       
        scanf("%d", &numSets);

        return numSets;

}

Output :

Explanation :

  • As I see RandomInteger() function is defined to generate a Random number for user-defined range and offset. Here I have considered that RANGE and OFFSET are defined by users globally to use in the program.
  • There is no need to pass parameters in RandomInteger() function as in the main program RANGE and OFFSET are passed every time in the function call. Instead of passing them, They can be directly used to be used in the function definition as they are defined globally using the "#DEFINE" directive.
  • In the for loop, we have used 5 while loop to generate an integer which is not the same as the previous ones being generated.
  • Since all the previous depend on the "a" variable for comparing, it is kept same as it is defined.
  • A single while loop is used to generate all other variables and the conditions being used for them are inserted in this single while loop using the "||" (or) operator so that all the conditions should be satisfied i.e no integers being generated are the same.

Related Solutions

Sources are not all the same in the way they specify the output voltage. Some assume...
Sources are not all the same in the way they specify the output voltage. Some assume that a load with a resistance matching the output resistance is always present when you set the voltage. Other devices assume there is a high impedance load on the output. Which of the cases match the voltage settings for Elvis II? Explain your answer
Explain how to use the C# shortcut arithmetic operators -=, *=, and /=.
Explain how to use the C# shortcut arithmetic operators -=, *=, and /=.
C++ The txt file is not showing up in my output #include <iostream> #include <fstream> #include...
C++ The txt file is not showing up in my output #include <iostream> #include <fstream> #include <string> #include "Classroom.h" using namespace std; Classroom myLib; void loadDataset(string fileName) { ifstream myFile; myFile.open(fileName.c_str()); } void continueMessage(string message) { cout << message << endl; cout << "Press Enter to continue.." << endl; cin.get(); } int main() { string fileName = "dataset.txt"; loadDataset(fileName); myLib.print(); continueMessage; string ID = "Janet Newman"; myLib.removeStudent (ID); continueMessage("Janet Newman has been removed."); //--------------------------------------------------------------------------- myLib.print(); continueMessage("All students are listed!"); return...
where can we find plexus and what are their function. in a simpler way
where can we find plexus and what are their function. in a simpler way
The world would be simpler if the US Tax Code and US GAAP were the same,...
The world would be simpler if the US Tax Code and US GAAP were the same, and thus two sets of books would not be needed. Discuss the reasons they are not and whether or not you think it necessary for the present system to remain as it is
Can I please get a page-long response on the short story "Mrs. Todds Shortcut" try to...
Can I please get a page-long response on the short story "Mrs. Todds Shortcut" try to avoid summarizing the story and describe some of the literary elements. Thank You!!
I'm trying to make this C++ loan calculator but I can't get the program to output...
I'm trying to make this C++ loan calculator but I can't get the program to output what I need. For instance I know the formula is right and when I enter 100000 1.5 20 as my cin variables I should get 482.55 but I get 1543.31. What am I not seeing as the issue? Also this should cout only 2 decimal places right? I'm not allowed to alter the #include and add any fixed setprecision. This is what I have....
Define the sample space. To get simpler expressions, you can prefer the set notations. (a) (6...
Define the sample space. To get simpler expressions, you can prefer the set notations. (a) (6 Points) What is the sample space of choosing a real number from interval [0, 1] which is larger than 0.5. Specify the properties of the sample space. Design two different random variables for this task. (b) (6 Points) You play rock-paper-scissors with your friend. The one with total three wins or two subsequent wins will be the winner of the game. Give a probability...
3. Add mutex locks to tprog2.c to achieve synchronization, and screenshot the output tprog2.c #include <stdio.h>...
3. Add mutex locks to tprog2.c to achieve synchronization, and screenshot the output tprog2.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <pthread.h> void* print_i(void *ptr) { printf("1: I am \n"); sleep(1); printf("in i\n"); } void* print_j(void *ptr) { printf("2: I am \n"); sleep(1); printf("in j\n"); } int main() { pthread_t t1,t2; int rc1 = pthread_create(&t1, NULL, print_i, NULL); int rc2 = pthread_create(&t2, NULL, print_j, NULL); exit(0); }
The major advantage of using structs is to make the C++ code simpler, easier to read,...
The major advantage of using structs is to make the C++ code simpler, easier to read, and easier to work with. After completing this assignment, students will be able to: • use structs to create and/or introduce new custom data types • implement structs to group fixed numbers of pieces of data of different types • implement structs within structs • chaining using the dot operators to access nested fields • copy an entire structure • create an array of...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT