Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

C problem

  1. Jan 26, 2006 #1
    Hi, I have a problem to code this:

    Image that you have the following file presenting the following decimal values:

    2 A 40.0
    115.00 1.02842 5.944 10.0528 -1.656
    115.00 1.01911 4.678 10.0528 177.078

    11 6 100.0
    115.00 1.01530 2.392 2.9097 11.933
    115.00 1.00338 2.849 0.2633 37.685
    115.00 1.00566 2.460 1.5274 8.387
    230.00 0.99738 5.209 4.3274 -2.728

    How can I code in ANSI C so that the program reads the first line, prints it ( I know this part) then reads the following 5 ( which are the values for voltages) add all of them, then goes to to the second ste of five data.

    After thatthe program reads the second set of three data, print them, and reads the follwoing five, add them all and so forth.

    can some help me or give me some suggestions
    Thank you

  2. jcsd
  3. Jan 27, 2006 #2


    User Avatar
    Staff Emeritus

    Do you know how to use the scanf function?

    For the first line you can do:

    scanf("%d %c %f",&a, &b, &c) ;

    Then for the the rest of the lines you have a for loop that does this:

    scanf("%f %f %f %f %f",&d, &e, &f, &g, &h) ;
  4. Jan 28, 2006 #3
    Thank you
    My problem was where to start the loop.
  5. Jan 28, 2006 #4
    My suggestion is that you write separate functions for each separate task, which helps make everything much clearer. For example, write function "readHeaderLine" to process the top line of each data set and write function "readDataLine" to read and process each data line. If these functions return a value like the number of items processed then you can make them return 0 when they come across an empty line. This way your main function will know when a data set is finished (readDataLine has returned 0) or when there is no more data sets to process (readHeaderLine has returned 0). Using these accessory functions, you will find it simple to write the main loop.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook