#include #include #include int printpos(int n, ...) { int pos = 0; int negs = 0; int tmp = n; va_list ap, pstart; char fmt[100] = ""; va_start(ap, n); va_copy(pstart, ap); if (n>0) tmp = va_arg(ap, int); else { while (tmp < 0) { negs++; va_copy(pstart, ap); tmp = va_arg(ap, int); } } while (tmp != 0) { strcat(fmt, "%d "); pos++; tmp = va_arg(ap, int); } printf("%d negatiivista alussa, sitten: ", negs); if (pos>0) { if (!negs) printf("%d ", n); vprintf(fmt, pstart); } else printf("ei mitään"); va_end(ap); printf("\n"); return pos; } int main(int argc, char **argv) { printpos(-1, -2, -3, -4, 5, 6, 7, 8, 0); printpos(-1, -2, 3, -4, 5, 6, 7, 8, 0); printpos(1, 2, 3, 0); printpos(-1, 0); printpos(0); return 0; }