zoukankan      html  css  js  c++  java
  • prob

     1 void calc_probability(int num)
     2 {
     3     int i = 0, j = 0 , k = 0;  
     4     #define  SIZE_NUM 8
     5     int *array_num = NULL; 
     6     int *remember_num = NULL;
     7     char (**array_detail)[SIZE_NUM] = NULL; //数组指针
     8     int len_array = 0;
     9     int count_num = 0;
    10     int count = 0;
    11 
    12     len_array = 2 * num - 1;
    13     array_num = (int*)calloc(len_array, sizeof(int));
    14     array_detail = (char (**)[SIZE_NUM])calloc(len_array, sizeof(char(*))); //这里注意是sizeof(char(*)不是sizeof(char(*)[SIZE_NUM])
    15     remember_num = (int*)calloc(len_array, sizeof(int));
    16 
    17     for(i = 0; i < len_array; i++)
    18     {
    19         array_num[i] = i + 2;
    20         array_detail[i] = (char(*)[SIZE_NUM])calloc(count_num + 1, sizeof(char[SIZE_NUM]));
    21     }
    22 
    23     for(i = 0; i < len_array; i++)
    24     {   
    25         count = 0; // 计数清零
    26         count_num = 0;
    27         for(j = 1; j <= num; j++)
    28         {
    29             for(k = 1; k <= num; k++)
    30             {
    31                 if(j + k == array_num[i])
    32                 {
    33                     sprintf(array_detail[i] + count_num, "(%d, %d)", j, k);
    34                     //printf("%s", array_detail[i] + count_num);
    35                     count_num++;
    36                     count++;
    37                     array_detail[i]  = (char(*)[SIZE_NUM])realloc(array_detail[i], (count_num + 1) * sizeof(char[SIZE_NUM]));
    38                     memset(array_detail[i] + count_num, 0x0, SIZE_NUM);
    39                 }
    40             }
    41         }
    42         remember_num[i] = count;
    43     }
    44 
    45     for(i = 0; i < len_array; i ++)
    46     {   
    47         printf("数字 %d 的个数是: %d
    ", i + 2, remember_num[i]);
    48         for(j = 0; j < remember_num[i]; j++)
    49         {
    50             printf("%s ", array_detail[i] + j);
    51         }
    52         printf("
    ");
    53     }
    54 
    55 
    56     //释放内存
    57     free(remember_num);
    58     remember_num = NULL;
    59 
    60     free(array_num);
    61     array_num = NULL;
    62 
    63     for(i = 0; i < len_array; i++)
    64     {
    65         free(array_detail[i]);
    66         array_detail[i] = NULL;
    67     }
    68     free(array_detail);
    69     array_detail = NULL;
    70 
    71     return;
    72 
    73 }

    错了好多次,终于改对了。

  • 相关阅读:
    牛顿插值法及其C++实现
    见鬼吧,拉格朗日插值法
    迭代法与开根号求值(letcode 69)
    多项式计算之秦九韶算法
    (扩展根目录容量方法汇总)把Linux系统迁移到另一个分区或者硬盘
    jdk 动态代理源码分析
    python 随笔
    java 笔记
    enum(枚举类型)
    提高工作效率的准则
  • 原文地址:https://www.cnblogs.com/hdu-2010/p/3342296.html
Copyright © 2011-2022 走看看