Подтвердить что ты не робот

Есть ли способ, чтобы printf() правильно распечатывал массив (поплавков, скажем)?

Я считаю, что внимательно прочитал всю документацию printf(), но не смог найти способ распечатать, скажем, элементы 10-элементного массива float(s).

Например, если у меня есть

float[] foo = {1., 2., 3., ..., 10.};

Тогда я хотел бы иметь один оператор, например

printf("what_do_I_put_here\n", foo);

Что бы напечатать что-то по строкам:

1. 2. 3. .... 10.

Есть ли способ сделать это в ваниле C?

4b9b3361

Ответ 1

вам нужно итерации через элементы массива

float foo[] = {1, 2, 3, 10};
int i;
for (i=0;i < (sizeof (foo) /sizeof (foo[0]));i++) {
    printf("%lf\n",foo[i]);
}

или создать функцию, которая возвращает сложную snprintf, а затем распечатать ее с помощью

printf("%s\n",function_that_makes_pretty_output(foo))

Ответ 2

На языке, который говорит "напечатать весь массив на экране", нет ни одной инструкции. Каждый элемент массива должен быть напечатан на экране индивидуально.

Но не волнуйтесь, петли там, чтобы спасти вас! Я думаю, ваш вопрос должен был знать только, есть ли способ, и я полагаю, что человек с 5k-повторами на SO не должен видеть фрагмент кода для знать, как выполняются циклы!

Ответ 3

Вам нужно пройти через массив и printf() каждый элемент:

for(int i=0;i<10;++i) {
  printf("%.2f ", foo[i]);
}

printf("\n");

Ответ 4

Я не думаю, что есть способ распечатать массив для вас в printf. Функция "printf" не знает, как долго ваш массив.

Ответ 5

Вам нужно пройти цикл:

for (int i = 0; i < sizeof(foo) / sizeof(float); ++i)
   printf("%f", foo[i]);
printf("\n");

Ответ 6

C не является языком объектно-ориентированного программирования (ООП). Таким образом, вы не можете использовать свойства в ООП. Например. В C. нет свойства .length. Поэтому вам нужно использовать циклы для своей задачи.

Ответ 7

Быть честным Все хорошо, но будет легко, если или более эффективно, если кто-то использует n временных номеров и покажет их в put. Предпочитаете, что это будет хороший вариант. Не предопределяйте переменную массива, чтобы пользователь определял и показывал результат. Как это..

int main()
{
    int i,j,n,t;
int arry[100];
    scanf("%d",&n);
   for (i=0;i<n;i++)
   { scanf("%d",&t);
       arry[i]=t;
   }
for(j=0;j<n;j++)
    printf("%d",arry[j]);

return 0;
}

Ответ 8

вы можете напечатать его как строку:

printf("%s\n", foo);