¿Cómo uso scanf () para tomar una cantidad arbitraria de enteros?

El progtwig toma una cantidad arbitraria de enteros como entrada y da una salida de ese entero y esa cantidad de estrellas.

P.ej

In: 1 2 3 Out: 1 | * 2 | ** 3 | *** 

Otro ejemplo:

 In: 2 5 6 8 Out: 2 | ** 5 | ***** 6 | ****** 8 | ******** 

¿¿Cómo lo hago??

Por cierto, progtwigdor aficionado de C

¿Y cómo agrego un único espacio de línea “\ n” entre líneas en formato de pregunta de desbordamiento de stack?

para leer números de una línea, puedes:

 #include  int main(){ char buffer[1000]; if (fgets(buffer, sizeof(buffer), stdin) != 0){ int i,j,a; for(i=0; sscanf(buffer+i,"%d%n",&a,&j)!=EOF; i+=j){ while(a-->0){ printf("*"); } printf("\n"); } } return 0; } 

Es mejor tener un bucle de esta manera.
Mientras el usuario no haya ingresado “\ n”, su progtwig debería poder considerarlos como enteros. Por supuesto, usted puede agregar algunos otros controles también.

Algo como esto:

 int number = 0; char c = ''; while(c != '\n'){ getch(c); scanf("%d", &number); /*Do your star thing or add this number to an array for the later consideration*/ } 

Esto no está completamente probado y es posible que tenga que realizar algunos cambios.

 #include  #define SIZE 8 int input_numbers(int numbers[]){ int i=0,read_count; char ch; printf("In: "); while(EOF!=(read_count=scanf("%d%c", &numbers[i], &ch))){ if(read_count==2) ++i; if(i==SIZE){ fprintf(stderr, "Numeric number has reached the Max load.\n"); return i; } if(ch == '\n') break; } return i; } void output_numbers(int numbers[], int size){ int i,j; printf("Out:\n"); for(i=0;i