광고, 욕설, 도배글은 금지이며, 첨부파일 #1 : 그림만, 첨부파일 #2 : 일반 파일도 올라갑니다. 용량 제한은 10MB입니다.


  the Manster(2005-11-21 04:01:02, Hit : 1038, Vote : 123
 http://manster.nasol.net
 gamehw.zip (23.8 KB), Download : 74
 공학 전자 계산 숙제 #2 (수정)

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>

void total(int j, int wins)
{
        if(wins==1) printf("%5d   승   ",j);
        else if(wins==0) printf("%5d   패   ",j);

        if(j%6==0) printf("\n");
        if(j%300==0) {
                printf("엔터키를 누르시면 넘어갑니다");
                getch();
                printf("\n");
        }
}

void main()
{
        int num,i,win,cnt,cnts=0,x=1,y=1,choice,car,my; // 변수 선언 지점 고정 불변

        long seed;
        seed=time(NULL);
        srand(seed);
        printf("여러분 앞에는 3개의 문이 있습니다. 이 중 하나의 문 뒤에는 차가\n"); // 가급적 여러줄로 하는 것이 좋음
        printf("한대 있고 나머지 두 개의 문 뒤에는 염소가 한마리씩 있습니다. 여\n"); // 한줄로 하면 글자수 제한에 걸림
        printf("러분이 하나의 문을 선택한 후, 컴퓨터는 나머지 두 개의 문 중 염\n");
        printf("소가 있는 문을 열어 보여 줍니다. 이 때 여러분은 다음 3가지 전략\n");
        printf("중 어떤 전략을 선택하시겠습니까?\n");
        printf("\t1. 처음 선택한 문을 그대로 유지\n");
        printf("\t2. 유지 혹은 변경을 무작위로 결정 (동전 던지기 등의 방법으로)\n");
        printf("\t3. 선택되지 않고 열리지 않은 문으로 변경\n");
        while(x)
        {
                printf("선택하신 전략 번호를 입력하십시오 (1~3) : ");
                scanf("%d",&num);
                if(num>=4||num<=0) {
                        printf("1,2,3중 한가지 값을 입력하십시오\n");
                        x=1;
                }
                else x=0;
        }
        while(y)
        {
                printf("게임의 진행 회수를 입력하십시오 (10~10000): ");
                scanf("%d",&cnt);
                if(cnt>=10001||cnt<=9) {
                        printf("10~10000 사이의 값을 입력하십시오\n");
                        y=1;
                }
                else y=0;
        }
        printf("   회  결과     회  결과     회  결과     회  결과     회  결과     회  결과\n");
        printf("==============================================================================\n");

        if(num==1) //나의 선택을 유지하는 경우
        {
                for(i=1;i<=cnt;i++)
                {
                        car=(rand()%3)+1;
                        my=(rand()%3)+1;
                        if(car==my)
                        {
                                win=1;
                                cnts+=1;
                        }
                        else
                                win=0;
                        total(i,win);
                }
        }
        else if(num==2) // 동전던지기 같은 방법을 이용하여 유지 혹은 변경을 결정
        {
                for(i=1;i<=cnt;i++)
                {
                        car=(rand()%3)+1;
                        my=(rand()%3)+1;
                        choice=rand()%2;   // 선택
                        if(choice==0)  // 유지로 결정
                        {
                                if(car==my)
                                {
                                        win=1;
                                        cnts+=1;
                                }
                                else
                                        win=0;
                        }
                        else if(choice==1) // 변경으로 결정
                        {
                                if(car!=my)
                                {
                                        win=1;
                                        cnts+=1;
                                }
                                else
                                        win=0;
                        }
                        total(i,win);
                }


        }
        else if(num==3)
        {
                for(i=1;i<=cnt;i++)
                {
                        car=(rand()%3)+1;
                        my=(rand()%3)+1;
                        if(car!=my)
                        {
                                win=1;
                                cnts+=1;
                        }
                        else
                                win=0;
                        total(i,win);
                }
        }

        printf("\n참가자가 선택한 전략 : %d. ",num);
        switch(num) {
                case 1 : printf("처음 선택한 문을 그대로 유지\n"); break;
                case 2 : printf("유지 혹은 변경을 무작위로 결정\n"); break;
                default : printf("선택되지 않고 열리지 않은 문으로 변경\n"); break;
        }
        printf("참가자가 이긴 게임 수 : %d회 / %d회\n",cnts,cnt);
        printf("승률 : %5.3f%% ",100*(float)(cnts)/(float)(cnt));
        getch();
}

재수정했음...다들 알아서 각자 적절히 수정해서 쓸 수 있도록 하시오;;;



the Manster (2005-11-21 04:01:31)  
그리고 가급적이면 위에 글로 올라간거 말고 소스코드 파일 받아서 쓰는 게 좋음;;;
the Manster (2005-11-21 18:09:15)  
getch(); 를 getchar(); 로 바꾸는 경우 처음 한번은 그냥 지나가버리는 버그로 인해 그냥 사용 했음.


138   오늘 자바 스터디로 짠 프로그램;;;  the Manster 2005/11/30 809 151
137   형님 저도 해봤심더. 함 보이소 [2]  노형민 2005/11/28 852 158
136   전산응용.....  the Manster 2005/11/28 788 150
135   형님 ㅋㅋ [1]  노형민 2005/11/25 934 186
  공학 전자 계산 숙제 #2 (수정) [2]  the Manster 2005/11/21 1038 123
133   풉 ㅋㅋ [1]  노형민 2005/11/09 925 177
132   공학 전자 계산 숙제 #1 [1]  the Manster 2005/10/07 1072 169
131   플동 C조 1회 실습 결과물  the Manster 2005/09/21 857 124
130   시험 전날 증후군  the Manster 2005/07/28 967 208
129   우리집  the Manster 2005/07/10 1031 179
128   휴가 나온 전경;;;  the Manster 2005/07/10 1099 188
127   과거와 현재 [1]  the Manster 2005/06/26 984 195
126   6전단때 사진....  the Manster 2005/06/26 974 173
125   전역교육중 (추가사진)  the Manster 2005/06/25 793 126

[1][2] 3 [4][5][6][7][8][9][10][11][12]
 

Copyright 1999-2021 Zeroboard / skin by zero