Попытка напечатать 10 строк из 100 значений массива в C - PullRequest
0 голосов
/ 08 октября 2018

У меня есть массив из 100 чисел, и я пытаюсь распечатать его только с 10-ю строчками в каждой строке и вкладкой между каждым числом.Это только печать первых 10 целых чисел и затем остановка, что имеет смысл из-за моего цикла for.Я явно пропускаю часть этого, чтобы позволить этому продолжаться через массив.Я собирался попытаться добавить строку

for(int line_num = 0; line_num < 10; line_num+=10)

перед оператором for после цикла while

int array_value;
int length_of_array = 100;

while (length_of_array <= 100){
    for(array_value = 0; array_value < 10; ++array_value){
        printf("%d  ", A[array_value]);
        ++length_of_array;      
    }

Я также думал о включении такой строки, как

if (array_value % 10 == 0)
            printf("\n");

Я понял это!Разместил ответ ниже.

Ответы [ 5 ]

0 голосов
/ 08 октября 2018

Вы можете использовать следующее решение для печати 10 строк из 100 значений массива в C:

for (int i = 0; i < 100; ++i){
    printf("%i\t", A[i]);
    if ((i+1)%10 == 0){
        printf("\n");
    }
}
0 голосов
/ 08 октября 2018

Просто измените значение length_of_array на 0 и напечатайте \n после цикла for.

int array_value;
int length_of_array = 0;

while (length_of_array <= 100) {
    for(array_value = 0; array_value < 10; ++array_value){
        printf("%d  ", A[array_value]);
        ++length_of_array;      
    }
    printf("\n");
}
0 голосов
/ 08 октября 2018

Просто напечатайте новую строку через каждое десятое число ... Если это не десятое число, распечатайте вкладку.

for (size_t i = 0; i < array_length; ++i) {
    printf("%d%c", A[i], i % 10 != 9 ? '\t' : '\n');
}

Действительный код доступен на onlinedbg .

0 голосов
/ 08 октября 2018

Это может быть то, что вы ищете:

/* test.c  */

#include <stdio.h>

#define ELEMENTS    100 

int main (void)
{
    int array [ELEMENTS];

    for ( int i = 0; i < ELEMENTS; ++i )
        array [i] = i;

    for ( int i = 0; i < ELEMENTS; ++i ) {
        printf ("%i", array[i]);
        if ( (i + 1) % 10 != 0 )
            printf ("\t");
        else
            printf ("\n");
    }

    return 0;
}

edit: из-за того, как вкладка может переходить на следующую строку в конце строки, вы должны быть осторожны с вкладкойи символ новой строки.

0 голосов
/ 08 октября 2018

Для ясности переименуйте length_of_array в offset_in_array, а затем установите его в ноль в начале.Я переименовал array_value и исправил вашу проверку длины.Я также добавил проверку во внутренний цикл в случае, если длина массива изменяется и не делится на 10.
Что-то вроде:

int i;
#define ARRAY_LENGTH 100
int offset_in_array = 0;

while (offset_in_array < ARRAY_LENGTH){
    for(i = 0; i < 10 && offset_in_array < ARRAY_LENGTH; ++i){
        printf("%d  ", A[offset_in_array]);
        ++offset_in_array;      
    }
}

Я не пробовал запускать это, но это должно бытьближе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...