⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex2.c

📁 tcc
💻 C
字号:
#include "tcclib.h"#define N 20int nb_num;int tab[N];int stack_ptr;int stack_op[N];int stack_res[60];int result;int find(int n, int i1, int a, int b, int op){    int i, j;    int c;    if (stack_ptr >= 0) {        stack_res[3*stack_ptr] = a;        stack_op[stack_ptr] = op;        stack_res[3*stack_ptr+1] = b;        stack_res[3*stack_ptr+2] = n;        if (n == result)            return 1;        tab[i1] = n;    }        for(i=0;i<nb_num;i++) {        for(j=i+1;j<nb_num;j++) {            a = tab[i];            b = tab[j];            if (a != 0 && b != 0) {                tab[j] = 0;                stack_ptr++;                if (find(a + b, i, a, b, '+'))                    return 1;                if (find(a - b, i, a, b, '-'))                    return 1;                if (find(b - a, i, b, a, '-'))                    return 1;                if (find(a * b, i, a, b, '*'))                    return 1;                if (b != 0) {                    c = a / b;                    if (find(c, i, a, b, '/'))                        return 1;                }                if (a != 0) {                    c = b / a;                    if (find(c, i, b, a, '/'))                        return 1;                }                                stack_ptr--;                tab[i] = a;                tab[j] = b;            }        }    }    return 0;}int main(int argc, char **argv){    int i, res, p;        if (argc < 3) {        printf("usage: %s: result numbers...\n"               "Try to find result from numbers with the 4 basic operations.\n", argv[0]);        exit(1);    }    p = 1;    result = atoi(argv[p]);    printf("result=%d\n", result);    nb_num = 0;    for(i=p+1;i<argc;i++) {        tab[nb_num++] = atoi(argv[i]);    }    stack_ptr = -1;    res = find(0, 0, 0, 0, ' ');    if (res) {        for(i=0;i<=stack_ptr;i++) {            printf("%d %c %d = %d\n",                    stack_res[3*i], stack_op[i],                   stack_res[3*i+1], stack_res[3*i+2]);        }        return 0;    } else {        printf("Impossible\n");        return 1;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -