32비트환경에서 long long 자료형 질문

duse0001의 이미지

#include <stdio.h>
#include<stdlib.h>
#include<time.h>
#include<Windows.h>
 
int running(int var1)
{
	if (var1 < 40)	//40%확률(이김) 일때 1리턴
		return 1;
	else
		return 0;	//60%확률(짐) 일때 0리턴
}
 
int win(int money, int var2)
{
	if (var2 == 0) //1등 3배
		return money * 3;
	else if (var2 == 1) //2등 2배
		return money * 2;
}
 
int lose(int money)
{
	return money;
}
 
int game(int var1, int var2, int* money, int betting)
{
	int res;
	//srand((unsigned)time(NULL));
	res = running(var1);
	if (res == 1)
	{
		if (var2 == 0)
		{
			*money = *money + win(betting, var2);
			printf("money : %10d \t betting: %10d Win*3\n", *money, betting);
			return 0;
		}
		if (var2 == 1)
		{
			*money = *money + win(betting, var2);
			printf("money : %10d \t betting: %10d Win*2\n", *money, betting);
			return 0;
		}
		//*money = *money + win(betting, var2);
		//printf("money : %10d \t betting: %10d Win\n", *money, betting);
		//return 0;
	}
	else if (res == 0)
	{
		*money = *money - lose(betting);
		printf("money : %10d \t betting: %10d Lose\n", *money, betting);
		return 1;
	}
	//	return money;
 
}
int main(void)
{
	int i = 0, var1, var2, end;
	static int cnt = 0;
	static int cnt2 = 0;
	long long money = 50000000; 
	long long betting = 10000;
 
	srand(GetTickCount());
 
	//getchar();
	//_sleep(100);
	var1 = rand() % 100;
	var2 = rand() % 2;
 
 
 
 
 
 
	////for (i = 0; i < 20; i++)
	////{
	////	var1 = rand() % 5;
	////	var2 = rand() % 2;
	////	printf("%d %d\n", var1, var2);
	////}rand값확인 유효값확인완료
	//
	////money=game(var1, var2, &money, betting);
	////printf("money : %4d\n", money);
	//for (i = 0; i < 20; i++)
	//{
	//	var1 = rand() % 5;
	//	var2 = rand() % 2;
	//	game(var1, var2, &money, betting);
	//	printf("money : %4d\n", money);
	//}	
	////1회게임완료
 
 
	while (1)
	{
		//srand(GetTickCount());
		Sleep(10);
		var1 = rand() % 100;
		var2 = rand() % 2;
		betting = 10000;
		end = game(var1, var2, &money, betting); cnt++;
 
		if (end == 1)	//패했을시
		{
 
			while (1)	//이길때까지 반복
			{
				//srand();
				//Sleep(20);
				//printf("\t \t %d \n", GetTickCount());								
				//Sleep(7);
				//if (cnt2 >= 15)
				//	betting = 10000;
				betting *= 2;
				var1 = rand() % 100;
				var2 = rand() % 2;
				end = game(var1, var2, &money, betting); cnt++; cnt2++;
 
				if (end == 0)
					break;
 
				if (money <= 0)
				{
					printf("bankrupt!!! mondy : %d\n", money);
					printf("count : %d, continuous cnt : %d\n", cnt, cnt2 + 1);
					return 0;
				}
 
			}
		}
 
		if (money <= 0)
		{
			printf("bankrupt!!! mondy : %d\n", money);
			printf("count : %d, continuous cnt : %d\n", cnt, cnt2 + 1);
			return 0;
		}
		printf("count : %d, continuous cnt : %d\n", cnt, cnt2 + 1);
		cnt2 = 0;
	}
	return 0;
}

시뮬레이션을 수백만?정도 해보고싶은데 money값이 int에선 너무 적어서 long long형을 사용해봤는데요

게임함수내에서 money 값이 음수가 돼도 end로 돌아오면 값이 다시 양수로 변하는데요

포인터를 잘못사용해서 그런건가요? int 일때는 잘 되는데 long long 일때는 왜 안되는지 이해가 안되네요 ㅜ

비판 부탁드립니다.

shint의 이미지


//long long 으로 변경
int game(int var1, int var2, long long* money, int betting)

//%I64d 로 출력하셔야 합니다.
http://sssloveyou.blog.me/30079657672

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

bushi의 이미지

컴파일 경고 전부 수정하세요.
win(int money, ...)
lose(int money)
game(..., int* money, int betting)

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.