领航员:干友恒 驾驶员:曹纪涛
编译语言: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("--------------黄金点游戏------------\n");15 printf("\n规则:输入的数仅为0~100之间的有理数\n\n");16 printf("--------------1.开始游戏------------\n");17 printf("--------------2.退出游戏------------\n");18 printf("------------请输入您的选择:--------\n");19 scanf("%d", &n);20 system("cls");21 if (n == 1)22 {23 game();24 25 }26 else27 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("\n请输入游戏次数:");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("\n第%d次游戏:\n",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 else57 {58 printf("输入的数据有误,请重新输入!\n");59 goto loop;60 }61 }62 G = (float)num*0.618 / N;63 printf("\n黄金G点值为:%f\n\n",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\n", Player[i].grade);84 }85 }86 }