CS 15900 – Homework 7
Due Friday 19 April 2024 at 11:00 PM (time local to West Lafayette, IN). 10 Points
Problem: A dominant number is an integer in which more than half of its digits are the same. For example, 434 is a dominant number beause of the number of times the digit 4 is present. Another example, 4343 is NOT a dominant number because neither ‘3’ nor ‘4’ present make up more than half of the digits of 4343.
The user will provide a seed for the random number generator and the minimum and maximum values to generate. A total of 1,000 numbers are to be generated in the range given (inclusive of the end points). Count how many times each digit (zero to nine) is the digit that makes a number in the data set a dominant number. Lastly, print all of the numbers in the for which the digit or digits with the largest count of dominant numbers in the data set.
Example Execution #1:
Enter desired seed value -> 2200
Enter desired minimum range value -> 1000
Enter desired maximum range value -> 9999
Dominant values by digit: 2 3 9 4 2 1 5 8 5 1
Dominant values #1: 2282 2224 2228 2822 2262
Dominant values #2: 2422 2225 2292 2202
Example Execution Explained:
• Dominant values by digit begin with ‘0’ and end with ‘9’.
• The ‘2’ is responsible for the most dominant numbers in the data set (nine).
• Values are displayed in the same order in which they were generated.
Example Execution #2:
Enter desired seed value -> 2400
Enter desired minimum range value -> 1000
Enter desired maximum range value -> 9999
Dominant values by digit: 1 5 5 7 3 8 8 4 5 4
Dominant values #1: 1555 5545 5557 3555 6555
Dominant values #2: 5055 5355 7555 6966 4666
Dominant values #3: 6686 9666 6066 6661 3666
Dominant values #4: 8666
Example Execution Explained:
• Display five dominant values per line.
• Two numbers are tied with the largest number of dominant values in the set (‘5’ and ‘6’) with 8 total occurrences each.
• Order of values begins with the smaller digit dominant number (‘5’) and continues through the largest digit dominant number (‘6’).
Example Execution #3:
Enter desired seed value -> 3000
Enter desired minimum range value -> 10000
Enter desired maximum range value -> 99999
Dominant values by digit: 9 9 8 13 6 12 9 8 4 4
Dominant values #1: 83733 37335 38833 95333 91333
Dominant values #2: 33335 13373 33370 36373 33030
Dominant values #3: 33308 33339 30343
First ten values generated:
79279 40919 74096
84718 94058 62375
92149 24877 53671
95695
Example Execution #4:
Enter desired seed value -> 2894
Enter desired minimum range value -> 10
Enter desired maximum range value -> 1000000
Dominant values by digit: 0 1 1 0 1 1 0 0 1 1
Dominant values #1: 101112 792222 48454 95255 78188
Dominant values #2: 92499
First ten values generated:
172335 127815 453121
464866 442046 663058
431503 85090 130021
823688
All course programming and documentation standards are in effect for this and each assignment this semester. Please review this document!
Example Execution #5 (input validation expectations demonstrated):
Enter desired seed value -> 0
Error! Seed value must be positive!
Enter desired seed value -> 1000
Enter desired minimum range value -> 0
Error! Minimum range value must be positive!
Enter desired minimum range value -> 9000
Enter desired maximum range value -> 9000
Error! Maximum range value must be greater than minimum range value of 9000!
Enter desired maximum range value -> 9999
Dominant values by digit: 1 1 2 0 2 0 1 0 1 24
Dominant values #1: 9994 9997 9399 9899 9499
Dominant values #2: 9992 9959 9299 9999 9991
Dominant values #3: 9990 9992 9899 9299 9994
Dominant values #4: 9969 9969 9993 9998 9199
Dominant values #5: 9099 9997 9993 9999
Academic Integrity Reminder: Please review the policies of the course as they relate to academic integrity. The assignment you submit should be your own original work. You are to seek assistance from course staff members ONLY. Collaboration is not permitted on individual homework assignments.
Additional Requirements:
1. Add the homework assignment header file to the top of your program. A description of your program will need to be included in the assignment header. This particular header can be added to your file by entering :hhw while in command mode in vi.
2. Each of the example executions provided for your reference represents a single execution of the program. Your program must accept input and produce output exactly as demonstrated in the example executions. Do not add any “bonus” features not demonstrated in the example executions. Your program will be tested with the data seen in the example executions and an unknown number of additional tests making use of meaningful data.
◦ See the final example execution provided for input validation expectations.
◦ No values given as input will exceed what an int data type variable is capable of storing.
3. For this assignment you will be required to implement user-defined functions (from chapter 4). Failing to follow course standards as they relate to good user-defined function use will result in a zero for this assignment.
4. Revisit course standards as it relates what makes for good use of user-defined functions, what is acceptable to retain in the main function, and when passing parameters by address is appropriate. In many cases user- defined function use should result in a main function that only declares variables and makes function calls.
5. Course standards prohibit the use of programming concepts beyond the material found in the first EIGHT chapters of the book, notes, and lectures.
◦ This problem can be solved using only single dimension fixed-length arrays.
◦ Theuseofanydynamicmemoryallocation,strings,bitwiseoperators,orunionswouldviolatethe
requirements of this assignment and would result in no credit being awarded for your effort.
6. A program MUST compile, be submitted through Vocareum as demonstrated during the Lab #0 exercise, and submitted prior to the posted due date to be considered for credit. The source code file you submit must be named exactly hw07.c; no variation is permitted.
Course Programming and Documentation Standards Reminders:
• It is common to make use of a symbolic/defined constant when the size of the array is known prior to the start of a program. The course standards expect all arrays to be of a fixed size. Variable-size arrays, even those demonstrated in chapter 8 of the text, would violate course standards.
• Code found inside the body of relevant selection and repetition constructs must be indented two additional spaces.
• Make use of { and } with all relevant selection and repetition constructs.
• See page 258 of your C programming text regarding the proper indentation for a switch construct.
• Use the course function header (vi shortcut :hfx while in command mode) for every user-defined function. ◦ List and comment all parameters to a function, one per line, in the course function header.
◦ All function declarations will appear in the global declaration section of your program.
◦ Theuser-definedfunctiondefinitionswillappearinyourprogramafterthemainfunction.
• Indent all code found within the main function exactly two spaces.
• Place a single space between all operators and operands.
• Comment all variables to the right of each declaration. Declare only one variable per line.
• Maximize your use of symbolic/defined constants and minimize your use of literal constants.
• Notice that several programs (see program 2-9 on pages 74-75) in the programming text use a single line comment to indicate the start of the local declaration and executable statement sections of the main function. ◦ Atnopointduringthesemestershouldthesetwosectionseveroverlap.
When you submit... only the final successful submission is kept for grading. All other submissions are overwritten and cannot be recovered. You may make multiple submissions, but only the last attempt is retained and graded.
• Verify in the confirmation email sent to you by the course that you have submitted the correct file to the correct assignment.
• Leave time prior to the due date to seek assistance should you experience difficulties completing or submitting this assignment. All attempts to submit via a method other than through the appropriate assignment on Vocareum will be denied consideration.
Assignment deadlines... are firm and the electronic submission will disable promptly as advertised. We can only grade what you are able submit via Vocareum prior to the assignment deadline.
请加QQ:99515681 邮箱:99515681@qq.com WX:codinghelp
标签: