The handout for the dot product assignment has a lot of specifics about what the program must do. Read it carefully. I mentioned in the CS 330 class that an easy way to format the real numbers with one digit after the decimal point is to use my setOutputFormat function. I use that in CS 161. It is in my CS 161 examples and most easily accessed at: http://cs.millersville.edu/~katz/examples161/circles.html You *MUST* read the data in the order described. In particular, the first input is one integer that will be the size of both vectors. Suppose you call it length. You then declare the vectors with: vector v1(length, 0), v2(length, 0); Now both v1 and v2 are the same size and filled with zeroes. You do not need to have prompt for each input value. When typing from the keyboard, typing control-D will end the input. There is no sentinel value at the end of the input. None. If I want to run the program again, I'll do it from the command line. My usual read-to-end-of-file loop is: while (cin >> value) { // do something with value } This loop will stop when there is no more data or if someone enters something that cannot be read as the type of value. Vectors are part of the C++ Standard Template Library. They have a size( ) member function that returns the number of elements as an unsigned int. Don't pass the size as a separate parameter. Because the size isn't changing and because you will get a warning if you compare your integer loop variable to an unsigned int, store the size in a local variable and use that in your loop. Mostly treat the vectors like arrays. But you need an & to pass them by reference or constant reference. Use the correct parameter passing mode. Beth Katz