鱼C论坛

 找回密码
 立即注册
查看: 597|回复: 9

[已解决]结构体指针初始化

[复制链接]
发表于 2020-4-15 18:24:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct
{
        int row, line;                //line为行,row为列
        double *data;
}Matrix;

Matrix* InitMatrix(Matrix *matrix, int row, int line);                //初始化矩阵
void ValueMatrix(Matrix *matrix, double *array);                                //给一个矩阵赋值
int SizeMatrix(Matrix *matrix);                                                                //获得一个矩阵的大小
void FreeMatrix(Matrix *matrix);                                                        //释放一个矩阵
void CopyMatrix(Matrix *matrix_A, Matrix *matrix_B);
void PrintMatrix(Matrix *matrix);                                                        //打印一个矩阵

//矩阵的基本运算
Matrix* AddMatrix(Matrix *matrix_A, Matrix *matrix_B);                //矩阵的加法
Matrix* MulMatrix(Matrix *matrix_A, Matrix *matrix_B);                //矩阵的乘法
void TransMatrix(Matrix *matrix);                        //条件为方阵

int main(int argc, char* argv[])
{
        double value[] = { 1,2,3,4,5,6,7,8,9 };
        double value2[] = { 9,8,7,6,5,4,3,2,1 };

        Matrix *matrix1 = InitMatrix(matrix1, 3, 3);                     (1) //显示matrix1未初始化 (1)
        Matrix *matrix2 = InitMatrix(matrix2, 3, 3);                     (2)//显示matrix2未初始化 (2)
   
        ValueMatrix(matrix1, value);
        // CopyMatrix(matrix1,matrix2);        //复制赋值
        ValueMatrix(matrix2, value2);
       

        printf("矩阵1 乘以 矩阵2: \n");
        Matrix *matrix3 = MulMatrix(matrix1, matrix2);        //乘法
        PrintMatrix(matrix3);
        return 0;
}

void ValueMatrix(Matrix *matrix, double *array)                 //给矩阵赋值
{
        if (matrix->data != NULL)
        {
                memcpy(matrix->data, array, matrix->row*matrix->line * sizeof(double));
        }
}


void CopyMatrix(Matrix *matrix_A, Matrix *matrix_B)
{
        matrix_B->row = matrix_A->row;
        matrix_B->line = matrix_A->line;
        memcpy(matrix_B->data, matrix_A->data, SizeMatrix(matrix_A) * sizeof(double));
}


Matrix* InitMatrix(Matrix *matrix, int row, int line)                                //初始化一个矩阵
{
        if (row > 0 && line > 0)
        {
                matrix = (Matrix*)malloc(sizeof(Matrix));
                matrix->row = row;
                matrix->line = line;
                matrix->data = (double*)malloc(sizeof(double)*row*line);
                return matrix;
        }
        else
                return NULL;
}


void PrintMatrix(Matrix *matrix)
{
        for (int i = 0; i < SizeMatrix(matrix); i++)
        {
                printf("%lf\t", matrix->data);
                if ((i + 1) % matrix->line == 0)
                        printf("\n");
        }
}


//乘法
Matrix* MulMatrix(Matrix *matrix_A, Matrix *matrix_B)
{
        if (matrix_A->row == matrix_B->line)                //列==行
        {
                Matrix *matrix_C = InitMatrix(matrix_C, matrix_B->row, matrix_A->line);                            (3) //matrix_C未初始化 (3)
                // matrix_C->line = matrix_A->line;                //A行
                // matrix_C->row = matrix_B->row;                        //B列
                for (int i = 0; i < matrix_A->row; i++)
                {
                        for (int j = 0; j < matrix_B->line; j++)
                        {
                                for (int k = 0; k < matrix_A->line; k++)
                                {
                                        matrix_C->data[i*matrix_C->line + j] += matrix_A->data[i*matrix_A->line + k] * matrix_B->data[k*matrix_B->row + j];
                                }
                        }
                }
                return matrix_C;
        }
        else
        {
                printf("不可相乘\n");
                return NULL;
        }
}


上面程序中的(1)(2)(3)该如何修改(文中标出了(1)(2)(3)),主函数里面的(1)(2),乘法函数里面的(3)
谢谢!
完整连接如下
https://blog.csdn.net/Beking17113/article/details/100547735

最佳答案
2020-4-16 18:46:01
本帖最后由 耻思lhj 于 2020-4-16 18:48 编辑
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>

  4. typedef struct
  5. {
  6.         int row, line;                //line为行,row为列
  7.         double *data;
  8. }Matrix;

  9. Matrix* InitMatrix(Matrix *matrix, int row, int line);                //初始化矩阵
  10. void ValueMatrix(Matrix *matrix, double *array);                                //给一个矩阵赋值
  11. int SizeMatrix(Matrix *matrix);                                                                //获得一个矩阵的大小
  12. void FreeMatrix(Matrix *matrix);                                                        //释放一个矩阵
  13. void CopyMatrix(Matrix *matrix_A, Matrix *matrix_B);
  14. void PrintMatrix(Matrix *matrix);                                                        //打印一个矩阵

  15. //矩阵的基本运算
  16. Matrix* AddMatrix(Matrix *matrix_A, Matrix *matrix_B);                //矩阵的加法
  17. Matrix* MulMatrix(Matrix *matrix_A, Matrix *matrix_B);                //矩阵的乘法
  18. void TransMatrix(Matrix *matrix);                        //条件为方阵

  19. int main(int argc, char* argv[])
  20. {
  21.         double value[9] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
  22.         double value2[9] = { 9, 8, 7, 6, 5, 4, 3, 2, 1 };

  23.         Matrix *matrix1 = NULL;
  24.         matrix1 = InitMatrix(matrix1, 3, 3);                     //显示matrix1未初始化 (1)
  25.         Matrix *matrix2 = NULL;
  26.         matrix2 = InitMatrix(matrix2, 3, 3);                     //显示matrix2未初始化 (2)


  27.         ValueMatrix(matrix1, value);
  28.         // CopyMatrix(matrix1,matrix2);        //复制赋值
  29.         ValueMatrix(matrix2, value2);

  30.         printf("矩阵1 乘以 矩阵2: \n");
  31.         Matrix *matrix3 = MulMatrix(matrix1, matrix2);        //乘法
  32.         PrintMatrix(matrix3);
  33.         getchar();
  34.         return 0;
  35. }

  36. void ValueMatrix(Matrix *matrix, double *array)                 //给矩阵赋值
  37. {
  38.         int i;
  39.         if (matrix->data != NULL)
  40.         {
  41.                 memcpy(matrix->data, array, matrix->row*matrix->line * sizeof(double));
  42.         }
  43. }

  44. int SizeMatrix(Matrix *matrix)
  45. {
  46.         return matrix->row*matrix->line;
  47. }

  48. void FreeMatrix(Matrix *matrix)
  49. {
  50.         free(matrix->data);                //释放掉矩阵的data存储区
  51.         if (matrix->data == NULL)
  52.                 printf("释放成功\n");
  53.         else
  54.                 printf("释放失败\n");
  55. }


  56. void CopyMatrix(Matrix *matrix_A, Matrix *matrix_B)
  57. {
  58.         matrix_B->row = matrix_A->row;
  59.         matrix_B->line = matrix_A->line;
  60.         memcpy(matrix_B->data, matrix_A->data, SizeMatrix(matrix_A) * sizeof(double));
  61. }


  62. Matrix* InitMatrix(Matrix *matrix, int row, int line)                                //初始化一个矩阵
  63. {
  64.         double value3[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  65.         if (row > 0 && line > 0)
  66.         {
  67.                 matrix = (Matrix*)malloc(sizeof(Matrix));
  68.                 matrix->row = row;
  69.                 matrix->line = line;
  70.                 matrix->data = (double*)malloc(sizeof(double)*row*line);
  71.                 ValueMatrix(matrix,value3);
  72.                 return matrix;
  73.         }
  74.         else
  75.                 return NULL;
  76. }


  77. void PrintMatrix(Matrix *matrix)
  78. {
  79.         int i;
  80.         for (i = 0; i < SizeMatrix(matrix); i++)
  81.         {
  82.                 printf("%lf\t", matrix->data[i]);
  83.                 if ((i + 1) % matrix->line == 0)
  84.                         printf("\n");
  85.         }
  86. }


  87. //乘法
  88. Matrix* MulMatrix(Matrix *matrix_A, Matrix *matrix_B)
  89. {
  90.         int i, j, k;
  91.         if (matrix_A->row == matrix_B->line)                //列==行
  92.         {

  93.                 Matrix *matrix_C = NULL;
  94.                 matrix_C = InitMatrix(matrix_C, matrix_B->row, matrix_A->line);                             //matrix_C未初始化 (3)
  95.                 // matrix_C->line = matrix_A->line;                //A行
  96.                 // matrix_C->row = matrix_B->row;                        //B列
  97.                 for (i = 0; i < matrix_A->row; i++)
  98.                 {
  99.                         for (j = 0; j < matrix_B->line; j++)
  100.                         {
  101.                                 for (k = 0; k < matrix_A->line; k++)
  102.                                 {
  103.                                         matrix_C->data[i*matrix_C->line + j] += matrix_A->data[i*matrix_A->line + k] * matrix_B->data[k*matrix_B->row + j];
  104.                                 }
  105.                         }
  106.                 }
  107.                 return matrix_C;
  108.         }
  109.         else
  110.         {
  111.                 printf("不可相乘\n");
  112.                 return NULL;
  113.         }
  114. }

复制代码

vs2013完美通过了,结果错误的原因是:因为你的初始化矩阵里没有给定初值,所以在没赋值的情况下,这个初始化的矩阵里面的9个double的值都是随机的,
我给你的Matrix* InitMatrix(Matrix *matrix, int row, int line) 里改了,赋了初值,没问题了。
ps:dev-c++应该是自动赋值了0,而vs没有。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-16 10:59:53 | 显示全部楼层
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>

  4. typedef struct
  5. {
  6.         int row, line;                //line为行,row为列
  7.         double *data;
  8. }Matrix;

  9. Matrix* InitMatrix(Matrix *matrix, int row, int line);                //初始化矩阵
  10. void ValueMatrix(Matrix *matrix, double *array);                                //给一个矩阵赋值
  11. int SizeMatrix(Matrix *matrix);                                                                //获得一个矩阵的大小
  12. void FreeMatrix(Matrix *matrix);                                                        //释放一个矩阵
  13. void CopyMatrix(Matrix *matrix_A, Matrix *matrix_B);
  14. void PrintMatrix(Matrix *matrix);                                                        //打印一个矩阵

  15. //矩阵的基本运算
  16. Matrix* AddMatrix(Matrix *matrix_A, Matrix *matrix_B);                //矩阵的加法
  17. Matrix* MulMatrix(Matrix *matrix_A, Matrix *matrix_B);                //矩阵的乘法
  18. void TransMatrix(Matrix *matrix);                        //条件为方阵

  19. int main(int argc, char* argv[])
  20. {
  21.         double value[] = { 1,2,3,4,5,6,7,8,9 };
  22.         double value2[] = { 9,8,7,6,5,4,3,2,1 };

  23.         Matrix *matrix1 = NULL;
  24.                 matrix1 = InitMatrix(matrix1, 3, 3);                     //显示matrix1未初始化 (1)
  25.         Matrix *matrix2 = NULL;
  26.                 matrix2 = InitMatrix(matrix2, 3, 3);                     //显示matrix2未初始化 (2)
  27.         
  28.    
  29.         ValueMatrix(matrix1, value);
  30.         // CopyMatrix(matrix1,matrix2);        //复制赋值
  31.         ValueMatrix(matrix2, value2);

  32.         printf("矩阵1 乘以 矩阵2: \n");
  33.         Matrix *matrix3 = MulMatrix(matrix1, matrix2);        //乘法
  34.         PrintMatrix(matrix3);
  35.         return 0;
  36. }

  37. void ValueMatrix(Matrix *matrix, double *array)                 //给矩阵赋值
  38. {
  39.         int i;
  40.         if (matrix->data != NULL)
  41.         {
  42.                 memcpy(matrix->data, array, matrix->row*matrix->line * sizeof(double));
  43.                
  44.         }
  45. }

  46. int SizeMatrix(Matrix *matrix)
  47. {
  48.         return matrix->row*matrix->line;
  49. }

  50. void FreeMatrix(Matrix *matrix)
  51. {
  52.         free(matrix->data);                //释放掉矩阵的data存储区
  53.         if (matrix->data == NULL)
  54.                 printf("释放成功\n");
  55.         else
  56.                 printf("释放失败\n");
  57. }


  58. void CopyMatrix(Matrix *matrix_A, Matrix *matrix_B)
  59. {
  60.         matrix_B->row = matrix_A->row;
  61.         matrix_B->line = matrix_A->line;
  62.         memcpy(matrix_B->data, matrix_A->data, SizeMatrix(matrix_A) * sizeof(double));
  63. }


  64. Matrix* InitMatrix(Matrix *matrix, int row, int line)                                //初始化一个矩阵
  65. {
  66.         if (row > 0 && line > 0)
  67.         {
  68.                 matrix = (Matrix*)malloc(sizeof(Matrix));
  69.                 matrix->row = row;
  70.                 matrix->line = line;
  71.                 matrix->data = (double*)malloc(sizeof(double)*row*line);
  72.                 return matrix;
  73.         }
  74.         else
  75.                 return NULL;
  76. }


  77. void PrintMatrix(Matrix *matrix)
  78. {
  79.                 int i;
  80.         for ( i = 0; i < SizeMatrix(matrix); i++)
  81.         {
  82.                 printf("%lf\t", matrix->data[i]);
  83.                 if ((i + 1) % matrix->line == 0)
  84.                         printf("\n");
  85.         }
  86. }


  87. //乘法
  88. Matrix* MulMatrix(Matrix *matrix_A, Matrix *matrix_B)
  89. {
  90.                 int i,j,k;
  91.         if (matrix_A->row == matrix_B->line)                //列==行
  92.         {
  93.                 Matrix *matrix_C = InitMatrix(matrix_C, matrix_B->row, matrix_A->line);                             //matrix_C未初始化 (3)
  94.                 // matrix_C->line = matrix_A->line;                //A行
  95.                 // matrix_C->row = matrix_B->row;                        //B列
  96.                 for ( i = 0; i < matrix_A->row; i++)
  97.                 {
  98.                         for ( j = 0; j < matrix_B->line; j++)
  99.                         {
  100.                                 for ( k = 0; k < matrix_A->line; k++)
  101.                                 {
  102.                                         matrix_C->data[i*matrix_C->line + j] += matrix_A->data[i*matrix_A->line + k] * matrix_B->data[k*matrix_B->row + j];
  103.                                 }
  104.                         }
  105.                 }
  106.                 return matrix_C;
  107.         }
  108.         else
  109.         {
  110.                 printf("不可相乘\n");
  111.                 return NULL;
  112.         }
  113. }
复制代码

应该是编译器的问题,我用dev c++没问题,想解决可以先把指针指向NULL
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-16 17:02:57 | 显示全部楼层
耻思lhj 发表于 2020-4-16 10:59
应该是编译器的问题,我用dev c++没问题,想解决可以先把指针指向NULL

Matrix *matrix_C = InitMatrix(matrix_C, matrix_B->row, matrix_A->line);                //matrix_C未初始化 (3)

还有这个乘法里面的matrix_C如何初始化了?按上面的指向NULL就不行了
谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-16 17:37:39 | 显示全部楼层
耻思lhj 发表于 2020-4-16 10:59
应该是编译器的问题,我用dev c++没问题,想解决可以先把指针指向NULL

我用的vs2017
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-16 18:21:39 | 显示全部楼层
  1. Matrix *matrix_C = NULL;
  2. matrix_C = InitMatrix(matrix_C, matrix_B->row, matrix_A->line);
复制代码

我用vs2013可以运行,但是不知道为什么结果有问题。
在dev-c++结果没有问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-16 18:46:01 | 显示全部楼层    本楼为最佳答案   
本帖最后由 耻思lhj 于 2020-4-16 18:48 编辑
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>

  4. typedef struct
  5. {
  6.         int row, line;                //line为行,row为列
  7.         double *data;
  8. }Matrix;

  9. Matrix* InitMatrix(Matrix *matrix, int row, int line);                //初始化矩阵
  10. void ValueMatrix(Matrix *matrix, double *array);                                //给一个矩阵赋值
  11. int SizeMatrix(Matrix *matrix);                                                                //获得一个矩阵的大小
  12. void FreeMatrix(Matrix *matrix);                                                        //释放一个矩阵
  13. void CopyMatrix(Matrix *matrix_A, Matrix *matrix_B);
  14. void PrintMatrix(Matrix *matrix);                                                        //打印一个矩阵

  15. //矩阵的基本运算
  16. Matrix* AddMatrix(Matrix *matrix_A, Matrix *matrix_B);                //矩阵的加法
  17. Matrix* MulMatrix(Matrix *matrix_A, Matrix *matrix_B);                //矩阵的乘法
  18. void TransMatrix(Matrix *matrix);                        //条件为方阵

  19. int main(int argc, char* argv[])
  20. {
  21.         double value[9] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
  22.         double value2[9] = { 9, 8, 7, 6, 5, 4, 3, 2, 1 };

  23.         Matrix *matrix1 = NULL;
  24.         matrix1 = InitMatrix(matrix1, 3, 3);                     //显示matrix1未初始化 (1)
  25.         Matrix *matrix2 = NULL;
  26.         matrix2 = InitMatrix(matrix2, 3, 3);                     //显示matrix2未初始化 (2)


  27.         ValueMatrix(matrix1, value);
  28.         // CopyMatrix(matrix1,matrix2);        //复制赋值
  29.         ValueMatrix(matrix2, value2);

  30.         printf("矩阵1 乘以 矩阵2: \n");
  31.         Matrix *matrix3 = MulMatrix(matrix1, matrix2);        //乘法
  32.         PrintMatrix(matrix3);
  33.         getchar();
  34.         return 0;
  35. }

  36. void ValueMatrix(Matrix *matrix, double *array)                 //给矩阵赋值
  37. {
  38.         int i;
  39.         if (matrix->data != NULL)
  40.         {
  41.                 memcpy(matrix->data, array, matrix->row*matrix->line * sizeof(double));
  42.         }
  43. }

  44. int SizeMatrix(Matrix *matrix)
  45. {
  46.         return matrix->row*matrix->line;
  47. }

  48. void FreeMatrix(Matrix *matrix)
  49. {
  50.         free(matrix->data);                //释放掉矩阵的data存储区
  51.         if (matrix->data == NULL)
  52.                 printf("释放成功\n");
  53.         else
  54.                 printf("释放失败\n");
  55. }


  56. void CopyMatrix(Matrix *matrix_A, Matrix *matrix_B)
  57. {
  58.         matrix_B->row = matrix_A->row;
  59.         matrix_B->line = matrix_A->line;
  60.         memcpy(matrix_B->data, matrix_A->data, SizeMatrix(matrix_A) * sizeof(double));
  61. }


  62. Matrix* InitMatrix(Matrix *matrix, int row, int line)                                //初始化一个矩阵
  63. {
  64.         double value3[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  65.         if (row > 0 && line > 0)
  66.         {
  67.                 matrix = (Matrix*)malloc(sizeof(Matrix));
  68.                 matrix->row = row;
  69.                 matrix->line = line;
  70.                 matrix->data = (double*)malloc(sizeof(double)*row*line);
  71.                 ValueMatrix(matrix,value3);
  72.                 return matrix;
  73.         }
  74.         else
  75.                 return NULL;
  76. }


  77. void PrintMatrix(Matrix *matrix)
  78. {
  79.         int i;
  80.         for (i = 0; i < SizeMatrix(matrix); i++)
  81.         {
  82.                 printf("%lf\t", matrix->data[i]);
  83.                 if ((i + 1) % matrix->line == 0)
  84.                         printf("\n");
  85.         }
  86. }


  87. //乘法
  88. Matrix* MulMatrix(Matrix *matrix_A, Matrix *matrix_B)
  89. {
  90.         int i, j, k;
  91.         if (matrix_A->row == matrix_B->line)                //列==行
  92.         {

  93.                 Matrix *matrix_C = NULL;
  94.                 matrix_C = InitMatrix(matrix_C, matrix_B->row, matrix_A->line);                             //matrix_C未初始化 (3)
  95.                 // matrix_C->line = matrix_A->line;                //A行
  96.                 // matrix_C->row = matrix_B->row;                        //B列
  97.                 for (i = 0; i < matrix_A->row; i++)
  98.                 {
  99.                         for (j = 0; j < matrix_B->line; j++)
  100.                         {
  101.                                 for (k = 0; k < matrix_A->line; k++)
  102.                                 {
  103.                                         matrix_C->data[i*matrix_C->line + j] += matrix_A->data[i*matrix_A->line + k] * matrix_B->data[k*matrix_B->row + j];
  104.                                 }
  105.                         }
  106.                 }
  107.                 return matrix_C;
  108.         }
  109.         else
  110.         {
  111.                 printf("不可相乘\n");
  112.                 return NULL;
  113.         }
  114. }

复制代码

vs2013完美通过了,结果错误的原因是:因为你的初始化矩阵里没有给定初值,所以在没赋值的情况下,这个初始化的矩阵里面的9个double的值都是随机的,
我给你的Matrix* InitMatrix(Matrix *matrix, int row, int line) 里改了,赋了初值,没问题了。
ps:dev-c++应该是自动赋值了0,而vs没有。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-16 20:02:37 | 显示全部楼层
耻思lhj 发表于 2020-4-16 18:46
vs2013完美通过了,结果错误的原因是:因为你的初始化矩阵里没有给定初值,所以在没赋值的情况下,这个初 ...

谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-25 11:21:09 | 显示全部楼层
耻思lhj 发表于 2020-4-16 10:59
应该是编译器的问题,我用dev c++没问题,想解决可以先把指针指向NULL

如何将C语言的程序和行号一起复制下来(像你上面做的一样),粘贴到word?
谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-26 08:24:51 | 显示全部楼层
本帖最后由 耻思lhj 于 2020-4-26 08:26 编辑
吴敌小白 发表于 2020-4-25 11:21
如何将C语言的程序和行号一起复制下来(像你上面做的一样),粘贴到word?
谢谢!


编辑框上面有个加代码的功能
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-27 11:58:13 | 显示全部楼层
耻思lhj 发表于 2020-4-26 08:24
编辑框上面有个加代码的功能

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 20:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表