Есть ли способ, чтобы printf() правильно распечатывал массив (поплавков, скажем)?
Я считаю, что внимательно прочитал всю документацию printf()
, но не смог найти способ распечатать, скажем, элементы 10-элементного массива float(s)
.
Например, если у меня есть
float[] foo = {1., 2., 3., ..., 10.};
Тогда я хотел бы иметь один оператор, например
printf("what_do_I_put_here\n", foo);
Что бы напечатать что-то по строкам:
1. 2. 3. .... 10.
Есть ли способ сделать это в ваниле C?
Ответы
Ответ 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);