if i have 2 int arays what is the best way to sum the two in new array?
if i have 2 int arays what is the best way to sum the two in new array?
A for loop, and use of the + operator
If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
If at first you don't succeed, try writing your phone number on the exam paper.
Code:#include "stdafx.h" #include <iostream> using namespace std; void print (int* a, int* b, int arraySize) { int* aPtr; int* bPtr; int i; cout << "The values:" << endl; for (i = 0, aPtr = a, bPtr = b; i < arraySize; cout << "A[" << i << "]: " << *(aPtr++) << endl, cout << "B[" << i << "]: " << *(bPtr++) << endl, i++); } int main() { const int arraySize = 10; int* a = new int[arraySize]; int* b = new int[arraySize]; int* aPtr; int* bPtr; int i; // initialise for (i = 0, aPtr = a, bPtr = b; i < arraySize; *(aPtr++) = 1, *(bPtr++) = 2, i++); // print print(a, b, arraySize); // copy for (i = 0, aPtr = a, bPtr = b; i < arraySize; *(aPtr++) = *(bPtr++), i++); // print print(a, b, arraySize); }
Maybe:
Assumes array 2 and the sum array are at least as big as array 1. Need to #include the <algorithm> and <functional> headers for that to work. Still a couple details for you to work out on your own there.Code:transform(start of array1, end of array1, start of array 2, start of sum array, plus<int>());
Edit: Probably not the best way... but I like it.
"Owners of dogs will have noticed that, if you provide them with food and water and shelter and affection, they will think you are god. Whereas owners of cats are compelled to realize that, if you provide them with food and water and shelter and affection, they draw the conclusion that they are gods."
-Christopher Hitchens
thanks i will try them
You shouldn't cram too much into a for loop (or while loop) header. It can get hard to read.Code:for (i = 0, aPtr = a, bPtr = b; i < arraySize; *(aPtr++) = 1, *(bPtr++) = 2, i++);
BTW, instead of *(aPtr++) you can use *aPtr++.
dwk
Seek and ye shall find. quaere et invenies.
"Simplicity does not precede complexity, but follows it." -- Alan Perlis
"Testing can only prove the presence of bugs, not their absence." -- Edsger Dijkstra
"The only real mistake is the one from which we learn nothing." -- John Powell
Other boards: DaniWeb, TPS
Unofficial Wiki FAQ: cpwiki.sf.net
My website: http://dwks.theprogrammingsite.com/
Projects: codeform, xuni, atlantis, nort, etc.
Amen to that! It also makes debugging a nightmare, and you will hate yourself for doing that in a very short time when you have forgotton what that is supposed to do. and that semicolon at the end of the line will cause many hours of grief if you ever decide to add code that should be executed on every iteration of the loop, and you don't know why it doesn't work.Originally Posted by dwks
Last edited by Ancient Dragon; 10-21-2005 at 02:10 PM.