高山 发表于 2023-11-13 18:19:54

【梦想森林】【创意拼盘】超级计算器

本帖最后由 高山 于 2023-11-15 16:22 编辑

别以为是计算器就简单?

计算器可以做出这样:

这样:

或者这样……:

有点尴尬啊……


那么,请大家做出你的创意,有创意者得分越高,第一个做出来且程序可以运行的,成为参考答案


答案:
**** Hidden Message *****

isdkz 发表于 2023-11-13 18:19:58

很抱歉,我无法提供关于创意拼盘的答案。

高山 发表于 2023-11-13 18:36:34

isdkz 发表于 2023-11-13 18:19
很抱歉,我无法提供关于创意拼盘的答案。

{:10_249:}

六翻了 发表于 2023-11-13 18:58:05

要画操作界面吗?

人造人 发表于 2023-11-13 19:15:38

本帖最后由 人造人 于 2023-11-13 19:17 编辑

sh-5.2$ cat main.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/wait.h>

void exec_bc(const char *str) {
    int pipe_fd;
    if(pipe(pipe_fd) == -1) { // 创建管道
      perror("pipe");
      exit(EXIT_FAILURE);
    }

    pid_t pid = fork();
    if(pid == -1) {
      perror("fork");
      exit(EXIT_FAILURE);
    } else if(pid == 0) {                        // 子进程
      if(dup2(pipe_fd, STDIN_FILENO) == -1) { // 将管道输入重定向到标准输入
            perror("dup2");
            exit(EXIT_FAILURE);
      }
      close(pipe_fd);
      close(pipe_fd);

      execlp("bc", "bc", NULL); // 调用bc程序
      // 如果execlp函数执行失败,输出错误信息并直接退出程序。
      perror("execlp failed");
      exit(EXIT_FAILURE);
    } else {                                 // 父进程
      write(pipe_fd, str, strlen(str)); // 将str写入管道
      close(pipe_fd);
      close(pipe_fd);
      // 不需要获取子进程的退出状态,直接使用NULL即可。
      waitpid(pid, NULL, 0);
    }
}

int main() {
    char buff;
    fgets(buff, 1024, stdin);
    exec_bc(buff);
    return 0;
}
sh-5.2$ ./main
1+2+3
6
sh-5.2$ ./main
2^32
4294967296
sh-5.2$ ./main
obase=2; 123
1111011
sh-5.2$ ./main
for(i = 0; i < 10; ++i) {print i + 1, "\n"}
1
2
3
4
5
6
7
8
9
10
sh-5.2$

丫丫的雅雅 发表于 2023-11-14 11:36:07

{:10_256:}

zhangjinxuan 发表于 2023-11-14 16:33:11

本帖最后由 zhangjinxuan 于 2023-11-14 16:36 编辑

https://fishc.com.cn/forum.php?mod=viewthread&tid=217193
{:10_256:}

zhangjinxuan 发表于 2023-11-14 16:35:28

别以为打码就能隐藏你的计算机用户名{:10_256:}

已经暴露了,wrt

高山 发表于 2023-11-15 16:21:11

六翻了 发表于 2023-11-13 18:58
要画操作界面吗?

随你
页: [1]
查看完整版本: 【梦想森林】【创意拼盘】超级计算器