fork(3) download
  1. #include <stdio.h>
  2. int main(void) {
  3. int i=0; // индекс текущей команды
  4. int j=0; // индекс массива данных
  5. int acc = 0; //аккумулятор
  6. char command_mem[100] = ",~>~?>~>~>~!"; //память команд
  7. int data_mem[10]={0}; // память данных
  8.  
  9. while (command_mem[i] != '\0') {
  10. if (command_mem[i]==',') // считываем число в аккумулятор
  11. scanf("%d", &acc);
  12. if (command_mem[i]=='+') // прибавляем число из data_mem
  13. acc=acc+data_mem[j]; // к аккумулятору
  14. if (command_mem[i]=='~') // загружаем число из аккумулятора
  15. data_mem[j]=acc; // в память данных
  16. if (command_mem[i]=='.') // выводим число из аккумулятора на экран
  17. printf("Output: %d",acc);
  18. if(command_mem[i]=='>') //переход на следующий элемент данных
  19. j++;
  20. if(command_mem[i]=='<') //переход на предыдущий элемент данных
  21. j--;
  22. if(command_mem[i]=='?') { // прыжок на метку !
  23. while(command_mem[i] != '!')
  24. i++;
  25. }
  26. i++; //увеличиваем индекс текущей команды
  27. }
  28. //переход на новую строку
  29. printf("\n");
  30. // выводим массив данных
  31. for (int k = 0; k<10; k++)
  32. printf("%d ", data_mem[k]);
  33. return 0;
  34. }
Success #stdin #stdout 0s 9424KB
stdin
5
stdout
5 5 0 0 0 0 0 0 0 0