【问题标题】:C++ printing 10 elements per lineC++ 每行打印 10 个元素
【发布时间】:2014-10-10 09:59:04
【问题描述】:

我有一个问题要问。如何让它在 ARRAY 的每行打印 10 个元素。

例如:

88 11 88 11 88 11 88 11 88 11  
11 88 11 88 11 88 11 88 11 88
88 11 88 11 88 11 88 11 88 11  
11 88 11 88 11 88 11 88 11 88
88 11 88 11 88 11 88 11 88 11  
11 88 11 88 11 88 11 88 11 88
88 11 88 11 88 11 88 11 88 11  
11 88 11 88 11 88 11 88 11 88
88 11 88 11 88 11 88 11 88 11  
11 88 11 88 11 88 11 88 11 88

这是我当前的代码:

int main()
{
    int test[ARRAY_SIZE][ARRAY_SIZE];

    for(int i = 0; i < ARRAY_SIZE; i++){
        for (int j = 0; j < ARRAY_SIZE; j++){
            if ((i+j)%2 == 0){
                test[i][j] = 88;
            }
            else if ((i+j)%2 == 1){
                test[i][j] = 11;
            }
        }
    }

}

我应该添加什么代码才能让它每行打印 10 个元素?请帮助我 D:提前谢谢! :)

【问题讨论】:

  • ARRAY_SIZE 的值是多少?

标签: c++ arrays printing


【解决方案1】:
#include <iostream>

#define ARRAY_SIZE 10

int main()
{
    int test[ARRAY_SIZE][ARRAY_SIZE];

    for(int i = 0; i < ARRAY_SIZE; i++){
        for (int j = 0; j < ARRAY_SIZE; j++){
            if ((i+j)%2 == 0){
                test[i][j] = 88;
            }
            else if ((i+j)%2 == 1){
                test[i][j] = 11;
            }
        }
    }

    for(int i = 0; i < ARRAY_SIZE; i++){
        for (int j = 0; j < ARRAY_SIZE; j++){
            std::cout << test[i][j] << " ";
        }

        std::cout << "\n";
    }

}

希望这会有所帮助。

【讨论】:

    【解决方案2】:
    1. 这看起来像作业/家庭作业

      • 所以我不会提供源代码...
      • 这是用于控制台输出吗?
      • 如果不指定目标...
    2. 您的代码只是填充了数组

      • 要打印,您需要在整个数组中添加 2 个嵌套的 for 循环 (i,j)
      • 与您已有的类似
      • 并在输出数组元素内 test[i][j] 而不是设置其值
      • 在屏幕上输出使用你习惯的(或你在课堂上使用的......)
      • 例如来自 iostream.h 的 cout 或来自 stdio.h 或 conio.h 的 printf 不确定现在已经有十多年没有使用这些古文了
    3. 10 每行的值

      • 每次输出 ASCII 码 13(回车)都表示换行
      • 对于控制台目标设备,它还会在左侧进行换行
      • 所以要实现你想要的,只需添加cout &lt;&lt; endl;printf("\n");
      • 每 10 个值被淘汰后 ...
      • 所以在嵌套for之前添加一些计数器int k=0;
      • 内部循环增加它并添加if (k&gt;=10) { k=0; cout &lt;&lt;endl; }
      • 根据您将所有这些放在一起的顺序,您可能会是
      • 需要将 10 更改 +/-1 以匹配每行 10 个值
      • 不要忘记在值之间添加一些空格,否则它们将合并为单个数字...
    4. 光栅目标设备

      • 对于非控制台设备,如位图 ...
      • 您需要计算自己的每个值的输出 x,y 位置
      • 所以在循环之前添加int x=x0,y=y0; // start position for output
      • 每次增加k,同时添加x+=width_for_single_value;
      • 并且每次将k 设置为零时添加y+=height_for_single_value; x=x0;
    5. 列对齐

      • 为此,您可以使用printf("%4i ",test[i][j]); 之类的格式
      • 或根据输出值大小自行添加空格/零
      • 例如这样的:
      • int val=123;
      • if (val&lt;10) cout &lt;&lt; "0";
      • if (val&lt;100) cout &lt;&lt; "0";
      • if (val&lt;1000) cout &lt;&lt; "0";
      • if (val&lt;10000) cout &lt;&lt; "0";
      • cout &lt;&lt; val &lt;&lt; " ";
      • 如果您要输出到文本文件,您可以使用 Tabulator ASCII 代码 9 或 '\t'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-13
      • 1970-01-01
      • 1970-01-01
      • 2018-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多