Go4Expert (http://www.go4expert.com/)
-   C++ (http://www.go4expert.com/forums/cpp/)
-   -   C++ questio about functions (http://www.go4expert.com/forums/cpp-questio-functions-t27373/)

 dror 14Dec2011 19:47

hello i wrote this short program that need just to multyply between 2 numbers ,but doing so only by useing + (thats our assigment from class)
the program do the work but it also add numbers like 449176 why does it do it ??,i feel that the answer will make me understand function real better ,any one know the answer??
Code:

``` #include <iostream.h> int kefel(int A,int B); int kefel(int A,int B) { int x,y,t=0;     for (x=0;x<A;x++)     {         for (y=0;y<B;y++)         {           t=++t;             }             }   cout<<t; }   int main()          { int a=0,b=0,k=0; cin>>a>>b;   cout<<kefel (a,b);         cin>>k;             return 0;                   }```

 Scripting 14Dec2011 21:07

I don't understand the function enough to help you, but I can give you one little advice : instead of using "cin>>k" use "cout<<endl; system("PAUSE");" :)

 xpi0t0s 15Dec2011 20:27

Undefined behaviour
Code:

`t=++t;`
If you want to increment t, use ONE of the following, and DO NOT try to mix them:
Code:

```t++; ++t; t=t+1;```
By the way, your program might work, but it doesn't use +. It uses ++, which is not the same.
You can do multiplication with repeated addition, e.g. 3*6=6+6+6 - that's 6 added to a zero-initialised accumulator 3 times.

 Chong 22Dec2011 10:58

Hi your keffel() functions is supposed to return int. The program as it is won't compile.
Bestt regards
Chong

 Scripting 23Dec2011 20:04

Quote:
 Originally Posted by Chong (Post 90451) Hi your keffel() functions is supposed to return int. The program as it is won't compile. Bestt regards Chong
IMHO, it can be compiled without any difficulties ...

 xpi0t0s 23Dec2011 21:40