zoukankan      html  css  js  c++  java
  • 结对项目----c语言黄金点游戏

        游戏规则: N个同学(N通常大于10),每人写一个0-100之间的有理数 (不包括0或100),
    交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值。
    提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分。
    玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动。
    经过不断的努力,由于能力不足,只能写出这样的代码,此代码还有一点瑕疵。
    #include<stdio.h> #include<stdlib.h> #include<string.h> int point() { int i,j,k,M,N; int max = 0, min = 0; int m[100], n[100]; double average, G,sum = 0.0; int score[100]; printf("欢迎来到黄金点游戏! "); printf("请输入游戏轮数: "); scanf_s("%d", &M); printf("请输入游戏人数: "); scanf_s("%d", &N); memset(score,0,sizeof(int)*N); for (i = 0; i < M; i++) { printf(" 第%d轮游戏: ",i+1); for (j = 0; j < N; j++) { printf("请输入一个0-100的数: "); scanf_s("%d",&m[j]); sum = sum + m[j]; average = sum/N; G = average*0.618; n[j] = m[j] - G; n[j]=(n[j]>0) ? n[j] : n[j]*(-1); max=(n[j]<n[max]) ? max:j; min=(n[j]<n[min]) ? j:min; } //printf(" %d ",max); //printf("%d ",min); score[max]-=2; score[min]+=2; for(k=0;k<N;k++) { printf("第%d人本轮后总分数为%d: ",k+1,score[k]); } sum = 0; printf("黄金点是%f", G); max=0; min=0; } return 0; } int main() { point(); system("pause"); }
    游戏源码已上传GitHub: https://github.com/sacfwe/GoldGame
    注:本博客为原创,转载请申明

      

  • 相关阅读:
    POJ1611 && POJ2524 并查集入门
    POJ 2785:4 Values whose Sum is 0 二分
    POJ 2309:BST lowbit
    POJ 3692:Kindergarten 求补图的最大点独立集 头一次接触这样的做法
    POJ 3735:Training little cats 联想到矩阵相乘
    POJ 3916:Duplicate Removal 将相近的重复元素删除
    nyoj43--24 Point game(dfs)
    cf-Igor In the Museum (dfs)
    8VC Venture Cup 2016 -- Elimination Round Tutorial 626B
    蓝桥杯
  • 原文地址:https://www.cnblogs.com/qiangzai/p/7601986.html
Copyright © 2011-2022 走看看