【问题标题】:How I display a string obtained from a matrix?如何显示从矩阵获得的字符串?
【发布时间】:2020-05-06 18:39:33
【问题描述】:

它被认为是一个矩形矩阵,有 m 行和 n 列。确定并显示矩阵的最小元素及其位置,由行号和列号给出。形成一个字符串,其中包含矩阵中所有可被最小元素整除的元素。显示获得的字符串。 (如果最小项为零,则程序确定并显示后停止)。

这是目前为止的程序:

int main()
{
  int m, n, c, d, mat[100][100], minim;
  printf("Introdu numarul de linii si coloane al matricei\n");
  scanf("%d%d",&m,&n);
  printf("Introdu elementele matricei\n");
  for (c = 0; c < m; c++)
    for(d = 0; d < n; d++)
      scanf("%d", &mat[c][d]);
      printf("\nMatricea este:\n");
for(c = 0; c < m ; c++)
{
    for(d = 0; d < n; d++)
    {
        printf("%d",mat[c][d]);
        printf("\t");
    }
    printf("\n");
}
  minim = mat[0][0];
  for (c = 0; c < m; c++)
    for (d = 0; d < n; d++)
      if (mat[c][d] < minim)
        minim = mat[c][d];
  printf("Elemenul minim al matricei este %d\n", minim);
  return 0;
}

【问题讨论】:

  • 那么你的问题是什么?
  • 非特定问题太多......
  • 要检查矩阵的元素是否可以被minim整除,请使用if (mat[c][d] % minim == 0)
  • 我不知道怎么做最后一部分:形成一个字符串,其中包含矩阵中所有可被最小元素整除的元素。显示获取到的字符串。

标签: c string matrix


【解决方案1】:

要检查矩阵的元素是否可以被minim整除,请使用以下条件:

if ((mat[c][d] % minim) == 0)

您可以使用sprintfint 转换为字符串,然后使用strcat 将字符串与另一个字符串连接。

将值存储在字符串中的代码(将此代码添加到您的主函数中):

     char * str = malloc(10);
     if(!str) {
       return -1;
     }

      int len = 0;
      for (c = 0; c < m; c++)
        for (d = 0; d < n; d++)
          if ((mat[c][d] % minim) == 0) {
            char temp[10];
            len += strlen(str) + 10;
            sprintf(temp, "%d ", mat[c][d]);
            str = realloc(str, len);
            if(!str) {
               return -1;
            }
            strcat(str, temp);
          }

       printf("string: %s\n", str);
       free(str);

测试的输出:

Introdu numarul de linii si coloane al matricei
3 2
Introdu elementele matricei
100 2 500 700 800 900
100 2   
500 700 
800 900 
Elemenul minim al matricei este 2
str : 100 2 500 700 800 900 

【讨论】:

    猜你喜欢
    • 2019-09-10
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    相关资源
    最近更新 更多