Sponsored Content
Full Discussion: Strange behavior in C++
Top Forums Programming Strange behavior in C++ Post 302425646 by santiagorf on Friday 28th of May 2010 06:57:12 PM
Old 05-28-2010
Strange behavior in C++

I have the following program:

Code:
int main(int argc, char** argv){
      unsigned long int mean=0;
      
      for(int i=1;i<10;i++){
           mean+=poisson(12);
           cout<<mean<<endl;
       }
       cout<<"Sum of poisson: "<< mean;
       return 0;
}

when I run it, I get the output:

Code:
15
26
41
56
73
82
92
106
116
Sum of poisson: 116

However, if I comment the line " cout<<mean<<endl; ", I get the following unexpected output

Code:
Sum of poisson: 22

What is going on? Why the "cout" line is affecting the variable mean?
I'm using linux, with the following commands

Compile: g++ -Wall -c "%f"
Build: g++ -Wall -o "%e" "%f"

gcc version: 4.4.1

Below is the complete code with the poisson function.

untitle.cpp
Code:
#include <iostream>

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
using namespace std;


#define RAND_UNIFORM (double)rand()/(double)RAND_MAX

 unsigned long int poisson(double lambda){
	double g,p=exp(-lambda);
	double u=RAND_UNIFORM;
	unsigned long int k=0;
	while (u>g){
		p*=(lambda/(double)(++k));
		g+=p;
    };
	return k;
};

int main(int argc, char** argv){
      unsigned long int mean=0;
      
      for(int i=1;i<10;i++){
           mean=mean+poisson(12);
           cout<<mean<<endl;
       }
       cout<<"Sum of poisson: "<< mean;
       return 0;
}

Any help would be much appreciated.
santiagorf

Last edited by santiagorf; 05-28-2010 at 09:15 PM..
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

strange sed behavior

I have a file called products.kp which contains, for example, 12345678,1^M 87654321,2^M 13579123,3 when I run the command cat products.kp| sed -f kp.sed where kp.sed contains s,^M,, I get the output 12345678,1 87654321,2 13579123,3 (5 Replies)
Discussion started by: Kevin Pryke
5 Replies

2. UNIX for Dummies Questions & Answers

Strange Behavior on COM2

Hi, I have a problem with a new touch screen controller that I am trying to use on a SCO 3.0 system. THe touch screen controller only wants to talk at 9600baud. I have updated /etc/inittab per the manual and also edited /usr/lib/event/devices to use 9600 baud. The only way I can get the... (0 Replies)
Discussion started by: Elwood51
0 Replies

3. Shell Programming and Scripting

Very Strange Behavior for redirection

I have searched far and wide for an explanation for some odd behavior for output redirection and haven't come up with anything. A co-worker was working on old scripts which have run for years and embedded in their code were output redirects which worked for the script during execution and then... (5 Replies)
Discussion started by: cahook
5 Replies

4. Shell Programming and Scripting

nawk strange behavior

Dear guys; when deleting repeated lines using nawk as below ; Why the below syntax works? nawk ' !a++' infile > outfile and when using the other below syntax the nawk doesn't work? nawk ' { !a++ } ' infile > outfile or nawk ' { !a++ } ' infile > outfile BR (4 Replies)
Discussion started by: ahmad.diab
4 Replies

5. Ubuntu

Ubuntu strange behavior

It is so till login screen. I mean that when I boot my computer, Ubuntu shows a splash screen with mouse instead of Ubuntu logo and in the login screen it shows XUbuntu login screen... It began when I upgraded to previous kernel, I suppose, but I'm not sure... I can't say that it annoys me very... (6 Replies)
Discussion started by: Sapfeer
6 Replies

6. AIX

Strange memory behavior

Hello together, i have a strange memory behavior on a AIX 7.1 System, which i cannot explain. The Filesystem-Cache will not be grow up and drops often after few minutes. I know if a file was deleted, that the same segment in the FS-Cache will also be cleared. But i am not sure if this is the... (8 Replies)
Discussion started by: -=XrAy=-
8 Replies

7. Shell Programming and Scripting

Strange behavior on one of my server

I am not sure what is wrong, but I have some strange behavior when printing things out. I do create a file with only one word test, no space, no new line etc. nano file<enter> test<ctrl x>y<enter> Server 1 gets (fail) awk '{print "+"$0"*"}' file *test Server 2 gets (OK) awk '{print... (9 Replies)
Discussion started by: Jotne
9 Replies

8. AIX

Strange behavior with tar

I am trying to create an archive using tar. I am specifying a list of directories using the -L option. For testing purposes I created a simple directory structure: /backup/test /backup/test/test1 /backup/test/test2 The file specified by the -L option, named files.txt, contains:... (8 Replies)
Discussion started by: judykstra
8 Replies

9. Shell Programming and Scripting

Strange behavior of grep

Hi All, I am facing a strange problem while grepping for a process. Here is the small script that i have written. It will look for any process running with the parameter passed to the script. If no process is running it should print appropriate message. $ cat t.ksh #!/bin/ksh set -x ... (9 Replies)
Discussion started by: veeresh_15
9 Replies
glutInitWindowPosition(3GLUT)					       GLUT					     glutInitWindowPosition(3GLUT)

NAME
glutInitWindowPositionWindowPosition, glutInitWindowSize - set the initial window position and size respectively. SYNTAX
#include <GLUT/glut.h> void glutInitWindowSize(int width, int height); void glutInitWindowPosition(int x, int y); ARGUMENTS
width Width in pixels. height Height in pixels. x Window X location in pixels. y Window Y location in pixels. DESCRIPTION
Windows created by glutCreateWindow will be requested to be created with the current initial window position and size. The initial value of the initial window position GLUT state is -1 and -1. If either the X or Y component to the initial window position is negative, the actual window position is left to the window system to determine. The initial value of the initial window size GLUT state is 300 by 300. The initial window size components must be greater than zero. The intent of the initial window position and size values is to provide a suggestion to the window system for a window's initial size and position. The window system is not obligated to use this information. Therefore, GLUT programs should not assume the window was created at the specified size or position. A GLUT program should use the window's reshape callback to determine the true size of the window. EXAMPLE
If you would like your GLUT program to default to starting at a given screen location and at a given size, but you would also like to let the user override these defaults via a command line argument (such as -geometry for X11), call glutInitWindowSize and glutInitWindowPosi- tion before your call to glutInit. For example: int main(int argc, char **argv) { glutInitWindowSize(500, 300); glutInitWindowPosition(100, 100); glutInit(&argc, argv); ... } However, if you'd like to force your program to start up at a given size, call glutInitWindowSize and glutInitWindowPosition after your call to glutInit. For example: int main(int argc, char **argv) { glutInit(&argc, argv); glutInitWindowSize(500, 300); glutInitWindowPosition(100, 100); ... } SEE ALSO
glutInit, glutCreateWindow, glutCreateSubWindow, glutReshapeFunc, glutGet AUTHOR
Mark J. Kilgard (mjk@nvidia.com) GLUT
3.7 glutInitWindowPosition(3GLUT)
All times are GMT -4. The time now is 11:21 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy