Tablice jednowymiarowe – wyświetalnie zawartości za pomocą printf bez pętli

0

Witam,
Za pomocą jakiej komendy mogę wyświetlić tablice jednowymiarową, z użyciem jednego printf() oraz bez użycia żadnej pętli. Najprościej i najbardziej ogólnie jak to tylko możliwe :)

<wstawię dla przykładu z for>

#include <stdio.h>

int main ()
{
	int tablica [11] = {0,1,2,3,4,5,6,7,8,9,10};
	int i;
	for(i=0;i<=10;i++)
	{
		printf("%d\n", tablica[i]);
	}
	return 0;	
}
0

STFW

0

A tak?

#include <iostream>
#include <sstream>
#include <algorithm>
#include <iterator>

using namespace std;

int main()
{
    int  array[] = {1,2,3,4};

    std::copy(array, array+4, std::ostream_iterator<int>(std::cout,","));

    return 0;
}
0

Jakby ktoś miał pomysł to zainicjowanie printf("%d %d %d .....", tablica....) liczy to jako parę wywołań ;) i odpada

4

Jedno printf bez użycia pętli:

#include <stdio.h>

void printfa(const char *a, int *b, int *c) {
	printf(a, *b); 
	if (b != c) printfa(a, b+1,c);
}	

int main ()
{
  int tablica [11] = {0,1,2,3,4,5,6,7,8,9,10};
  printfa("%d\n", tablica, tablica+10);
  return 0;
}

https://ideone.com/2NMlUk

Edit: sprytny kompilator (np. GCC 8.2) zrobi z tego pętlę, ale już na poziomie kodu maszynowego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1