91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言實現24點游戲代碼分享

發布時間:2021-08-11 14:39:02 來源:億速云 閱讀:175 作者:chen 欄目:編程語言

本篇內容介紹了“C語言實現24點游戲代碼分享”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

將算法實現改成C語言,并可在linux服務器上運行。同時修改為可顯示所有結果。 注:如果傳參重復,如4,4,7,7這樣,會回顯重復結果,暫無法清除。

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h> const double PRECISION = 1E-6; #define COUNT 4 const int RESULT = 24; #define STRLEN 50double number[COUNT] = {0};  //這里一定要用double,char expression[COUNT][STRLEN] = {0}; //保存表達式 #define TRUE 1#define FALSE 0int cnt = 0;void Test(int n){  int i = 0; int j = 0; int len = 0; //遞歸結束  if(1 == n){   if(number[0] == RESULT)  {    // 避免輸出前后括號    for (i = 1; i < strlen(expression[0]) - 1; i++)    {     printf("%c", expression[0][i]);    }    printf("\n");    cnt++;   return;   }   else    return;  }  //遞歸過程  for(i=0;i<n;i++){   for(j=i+1;j<n;j++){    double a,b;    char expa[STRLEN] = {0};   char expb[STRLEN] = {0};   a=number[i];    b=number[j];    // 刪除number[j]元素,用number[n-1]填補    number[j]=number[n-1];    strcpy(expa, expression[i]);   strcpy(expb, expression[j]);   // 刪除expression[j]元素,用expression[n-1]填補    strcpy(expression[j], expression[n-1]);   // 加法    len= strlen(expression[i]);   snprintf(expression[i], STRLEN, "(%s+%s)", expa, expb);   number[i]=a+b;    Test(n-1);   //減號有兩種情況,a-b與b-a    len= strlen(expression[i]);   snprintf(expression[i], STRLEN, "(%s-%s)", expa, expb);   number[i]=a-b;    Test(n-1);    if(a != b)   {    len= strlen(expression[i]);    snprintf(expression[i], STRLEN, "(%s-%s)", expb, expa);     number[i]=b-a;     Test(n-1);    }   // 乘法    len= strlen(expression[i]);   snprintf(expression[i], STRLEN, "(%s*%s)", expa, expb);    number[i]=a*b;    Test(n-1);    //除法也有兩種情況,a/b與b/a    if(b!=0){     len= strlen(expression[i]);    snprintf(expression[i], STRLEN, "(%s/%s)", expa, expb);    number[i]=a/b;     Test(n-1);   }    if((a!=0) && (a != b)){     len= strlen(expression[i]);    snprintf(expression[i], STRLEN, "(%s/%s)", expb, expa);    number[i]=b/a;     Test(n-1);    }    //恢復數組    number[i]=a;    number[j]=b;    strcpy(expression[i], expa);   strcpy(expression[j], expb);  }  }  return; } int main(int argc, char **argv){  int i = 0; if(5 != argc) {  printf("arg err\n");  return 0; } for(i=0;i<COUNT;i++) {   char buffer[20];   number[i] = atoi(argv[i + 1]);  strcpy(expression[i], argv[i + 1]); }  Test(COUNT); if(0 != cnt)  {  printf("Total[%d], Success\n", cnt);  } else  {  printf("Fail\n");  } return 0;}

運行結果如下:

andy@ubuntu14:~/work$ ./test 5 6 7 8((5+7)-8)*6(5+7)*(8-6)8/((7-5)/6)(6/(7-5))*86/((7-5)/8)(8/(7-5))*6(6*8)/(7-5)((5-8)+7)*6(7-(8-5))*6(5+7)*(8-6)(6*8)/(7-5)(5+(7-8))*6(5-(8-7))*6Total[13], Successandy@ubuntu14:~/work$ ./test 7 7 7 7Fail

“C語言實現24點游戲代碼分享”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泰安市| 临沂市| 额尔古纳市| 陆河县| 林芝县| 双流县| 大城县| 正宁县| 长汀县| 永和县| 富宁县| 溧阳市| 景洪市| 平阴县| 长顺县| 庆阳市| 东丰县| 防城港市| 临西县| 华安县| 那曲县| 德令哈市| 罗源县| 铜梁县| 荣昌县| 大冶市| 绥宁县| 永定县| 济宁市| 衡东县| 绍兴县| 兴城市| 阿合奇县| 堆龙德庆县| 尚义县| 个旧市| 弋阳县| 永年县| 岑巩县| 上饶市| 措勤县|