C ++每行打印10个元素

时间:2014-10-10 09:59:05

标签: c++ arrays printing

我有一个问题要问。如何让它在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:先谢谢! :)

2 个答案:

答案 0 :(得分:0)

#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";
    }

}

希望这有帮助。

答案 1 :(得分:0)

  1. 这看起来像是分配/作业

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

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

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

    • 用于非控制台设备,如位图......
    • 您需要计算每个值的输出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;
  6. 列对齐

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