| | |
Big looping problem in C - help
Thread Solved
![]() |
•
•
Join Date: Oct 2008
Posts: 48
Reputation:
Solved Threads: 0
Hey Guys!
I have a weired one here, it must be a post-test loop, and here is how result has to look like:
Enter the Section Code: 0
Invalid value entered. Must be 1 to 4, please re-enter: 1
Enter the Student's ID: 456789
Enter mark#1: 10
Enter mark#2: -20
Invalid grade entered. Must be 0.0 to 100.0, please re-enter: 20
Enter mark#3: 5.5
Enter mark#4: 5
Enter mark#5: 10
Enter mark#6: 6
Enter mark#7: 7
000456789's total mark is: 63.5
Enter the Student's ID ['0' to quit]: 123654987
Enter mark#1: 1
Enter mark#2: 2
Enter mark#3: 3
Enter mark#4: 4
Enter mark#5: 5
Enter mark#6: 6
Enter mark#7: 7
123654987's total mark is: 28.0
Enter the Student's ID ['0' to quit]: 0
The average for the section is 45.75%
Enter the Section Code [0 to quit]: 5
Invalid value entered. Must be 0 to 4, please re-enter: 2
Enter the Student's ID: 987654
Enter mark#1: 7
Enter mark#2: 6
Enter mark#3: 5
Enter mark#4: 4
Enter mark#5: 3
Enter mark#6: 2
Enter mark#7: 1
000987654's total mark is: 28.0
Enter the Student's ID ['0' to quit]: 0
The average for the section is 28.00%
Enter the Section Code [0 to quit]: 0
The average for the course is 39.83%
i got everything working except looping the main sequence, take a look at my results:
Enter the Section Code:44
Invalid value entered. Must be 1 to 4, please re-enter:1
Enter Student's ID:11
Enter Mark#1:5
Enter Mark#2:5
Enter Mark#3:5
Enter Mark#4:5
Enter Mark#5:5
Enter Mark#6:5
Enter Mark#7:5
000000011's total mark is: 5.0
Enter Student's ID[0 to Quit]:0
Enter the Section Code[0 to quit]:3
Enter Mark#1:
everything works fine if i hit 0 at "Enter the Section Code[0 to quit]:"
but just like the log shows, when i hit anything but 0 it goes to "Enter Mark1:" instead of "Enter Students ID:", i just cant loop it properly.,
here comes my code a part of my main():
any help would be greatly appreciated!!
chheers
I have a weired one here, it must be a post-test loop, and here is how result has to look like:
Enter the Section Code: 0
Invalid value entered. Must be 1 to 4, please re-enter: 1
Enter the Student's ID: 456789
Enter mark#1: 10
Enter mark#2: -20
Invalid grade entered. Must be 0.0 to 100.0, please re-enter: 20
Enter mark#3: 5.5
Enter mark#4: 5
Enter mark#5: 10
Enter mark#6: 6
Enter mark#7: 7
000456789's total mark is: 63.5
Enter the Student's ID ['0' to quit]: 123654987
Enter mark#1: 1
Enter mark#2: 2
Enter mark#3: 3
Enter mark#4: 4
Enter mark#5: 5
Enter mark#6: 6
Enter mark#7: 7
123654987's total mark is: 28.0
Enter the Student's ID ['0' to quit]: 0
The average for the section is 45.75%
Enter the Section Code [0 to quit]: 5
Invalid value entered. Must be 0 to 4, please re-enter: 2
Enter the Student's ID: 987654
Enter mark#1: 7
Enter mark#2: 6
Enter mark#3: 5
Enter mark#4: 4
Enter mark#5: 3
Enter mark#6: 2
Enter mark#7: 1
000987654's total mark is: 28.0
Enter the Student's ID ['0' to quit]: 0
The average for the section is 28.00%
Enter the Section Code [0 to quit]: 0
The average for the course is 39.83%
i got everything working except looping the main sequence, take a look at my results:
Enter the Section Code:44
Invalid value entered. Must be 1 to 4, please re-enter:1
Enter Student's ID:11
Enter Mark#1:5
Enter Mark#2:5
Enter Mark#3:5
Enter Mark#4:5
Enter Mark#5:5
Enter Mark#6:5
Enter Mark#7:5
000000011's total mark is: 5.0
Enter Student's ID[0 to Quit]:0
Enter the Section Code[0 to quit]:3
Enter Mark#1:
everything works fine if i hit 0 at "Enter the Section Code[0 to quit]:"
but just like the log shows, when i hit anything but 0 it goes to "Enter Mark1:" instead of "Enter Students ID:", i just cant loop it properly.,
here comes my code a part of my main():
C Syntax (Toggle Plain Text)
section=PreSecCode(); student_id=PreStudentId(); do { do { mark=Mark(); PrintIt(student_id, mark); student_id=StudentId(); }while(student_id!=0); section=SecCode(); }while(section!=0);
any help would be greatly appreciated!!
chheers
•
•
Join Date: Sep 2008
Posts: 1,529
Reputation:
Solved Threads: 190
Identify the portion of the code that isn't working and explain what it is supposed to do and I will gladly try to help you. Also, if we're supposed to identify your problem based on that 100 lines of input & output and that small segment of code, how are we going to do so if you didn't post the code for your functions that were called in that segment of code?
•
•
Join Date: Nov 2008
Posts: 19
Reputation:
Solved Threads: 6
The problem is that your outer loop is checking for 0 to exit. So when you have an error condition you are exiting the loop. Is there a char you enter to exit the program? That's the value that you'll want to use in that loop. I think you'll want to do something like this...
SENTINAL is the value the user enters to exit your program
C Syntax (Toggle Plain Text)
while(c != SENTINAL){ if(c == 0){ PrintIt("error must be 1-4"); continue; } //other loop code }
![]() |
Similar Threads
- maximum of an array using threads ?? (a shout for help) (C)
- Input error (C++)
- Computer looping at startup, hard to get it to actually start Windows (Cases, Fans and Power Supplies)
Other Threads in the C Forum
- Previous Thread: XHTML Parser in C code
- Next Thread: o s development in c. how?
| Thread Tools | Search this Thread |
* adobe ansi api array asterisks binarysearch calculate centimeter changingto char character cm convert copyimagefile cprogramme creafecopyofanytypeoffileinc createcopyoffile csyntax database directory feet fflush fgets file fork forloop frequency function givemetehcodez grade graphics gtkgcurlcompiling gtkwinlinux hacking highest histogram i/o inches infiniteloop input intmain() iso kernel keyboard km linked linkedlist linux linuxsegmentationfault list locate looping loopinsideloop. lowest match microsoft mqqueue mysql number oddnumber odf open opendocumentformat owf pattern pdf performance posix probleminc process program programming radix recv recvblocked repetition research reversing scanf scheduling segmentationfault send sequential socket socketprograming stack standard string systemcall threads turboc unix user variable voidmain() wab whythiscodecausesegmentationfault windows.h windowsapi






