fork download
  1. #include <stdio.h>
  2.  
  3. #define TOTAL 10
  4.  
  5. int main(void)
  6. {
  7. int digs[TOTAL] = {0};
  8. size_t count = 0;
  9. size_t sz_ar = sizeof(digs) / sizeof(*digs);
  10. int var_tmp = -1;
  11.  
  12. while(count < sz_ar && scanf("%d", &digs[count]) == 1)
  13. count++;
  14.  
  15. for (int i = 0; i < count; i++) {
  16. if (digs[i] == 5) {
  17. if (count < sz_ar) {
  18. for (int j = count; j > i; j--) {
  19. digs[j] = digs[j-1];
  20. }
  21.  
  22. digs[i+1] = var_tmp;
  23. var_tmp--;
  24. count++;
  25. } else {
  26. for (int t = sz_ar - 1; t < i; t--) {
  27. digs[t] = digs[t-1];
  28. }
  29.  
  30. digs[i+1] = var_tmp;
  31. var_tmp--;
  32. }
  33. }
  34. }
  35.  
  36. for (int p = 0; p < count; p++) {
  37. printf("%d ", digs[p]);
  38. }
  39.  
  40. return 0;
  41. }
Success #stdin #stdout 0s 5328KB
stdin
1 2 5 3 5 4 5 6
stdout
1 2 5 -1 3 5 -2 4 5 -3