领航员:干友恒 驾驶员:曹纪涛
编译语言:c语言
编程环境是Visual C++ 6.0
我们限定输入的数字是0-100之间的有理数,提供一个菜单给用户选择,玩家的人数和游戏的次数都由用户来输入,再将玩家输入的数字算出黄金点,再和玩家输入的数字进行比较,最后输出玩家的得分,由得分可以看出谁是胜利者。
心得:通过本次实验对c语言的运用更加熟练,了解了结对项目中的合作配合,对现代软件工程团队有了初步的了解认识。
GITHUB:https://github.com/GYH1205392387/MY-REPOSITORY/blob/master/%E7%BB%93%E5%AF%B9%E9%A1%B9%E7%9B%AE%EF%BC%9A%E9%BB%84%E9%87%91%E7%82%B9%E6%B8%B8%E6%88%8F
//代码参考网上的,来源忘记了:)
1 #include "stdio.h" 2 #include "string.h" 3 #include "stdlib.h" 4 5 struct 6 { 7 float data; 8 float grade; 9 }Player[100]; 10 void game(); 11 void main() 12 { 13 int n; 14 printf("--------------黄金点游戏------------ "); 15 printf(" 规则:输入的数仅为0~100之间的有理数 "); 16 printf("--------------1.开始游戏------------ "); 17 printf("--------------2.退出游戏------------ "); 18 printf("------------请输入您的选择:-------- "); 19 scanf("%d", &n); 20 system("cls"); 21 if (n == 1) 22 { 23 game(); 24 25 } 26 else 27 exit; 28 } 29 30 31 void game() 32 { 33 int N, a, b, c, i, j, k; 34 35 printf("请输入游戏人数:"); 36 scanf("%d", &N); 37 printf(" 请输入游戏次数:"); 38 scanf("%d", &a); 39 for (i= 0; i < N; i++) 40 { 41 Player[i].grade = 0; 42 } 43 for (j = 1; j <= a; j++) 44 { 45 int num = 0, max = 100, min = 0; 46 float G=0,m=0; 47 printf(" 第%d次游戏: ",j); 48 for (i = 0; i < N; i++) 49 { 50 loop: printf("玩家%d输入的数为:",i+1); 51 scanf("%f", &Player[i].data); 52 if(Player[i].data>=0&&Player[i].data<=100) 53 { 54 num += Player[i].data; 55 } 56 else 57 { 58 printf("输入的数据有误,请重新输入! "); 59 goto loop; 60 } 61 } 62 G = (float)num*0.618 / N; 63 printf(" 黄金G点值为:%f ",G); 64 for (k = 0; k < N; k++) 65 { 66 m = abs((float)Player[k].data - G); 67 if (m>=min) 68 { 69 min = m; 70 b = k; 71 } 72 if (m <= max) 73 { 74 max = m; 75 c = k; 76 } 77 } 78 Player[b].grade += -2; 79 Player[c].grade += 2; 80 for (i = 0; i < N; i++) 81 { 82 printf("玩家%d的得分为:", i+1); 83 printf("%f ", Player[i].grade); 84 } 85 } 86 }