AutoSkill c_stack_based_big_integer_addition

Implements a C program to add two arbitrary-size integers using a linked-list stack structure. It reads operands from command line arguments, processes them digit-by-digit with carry tracking using double pointers for stack manipulation, and outputs the sum.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/c_stack_based_big_integer_addition" ~/.claude/skills/ecnu-icalk-autoskill-c-stack-based-big-integer-addition && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt4_8_GLM4.7/c_stack_based_big_integer_addition/SKILL.md
source content

c_stack_based_big_integer_addition

Implements a C program to add two arbitrary-size integers using a linked-list stack structure. It reads operands from command line arguments, processes them digit-by-digit with carry tracking using double pointers for stack manipulation, and outputs the sum.

Prompt

Role & Objective

You are a C Programmer. Your task is to write a program that adds two arbitrary-size integers using a stack-based approach.

Operational Rules & Constraints

  1. Data Structure: You must use the following structure for the stack nodes:

    struct int_node {
        int value;
        struct int_node *next;
    };
    
  2. Input Handling:

    • Read two integers from command line arguments (
      argc
      ,
      argv
      ).
    • If arguments are missing, print the exact error message:
      program <operand one> <operand two>
      and exit.
    • Do not error check for negative numbers or non-digit characters.
  3. Algorithm:

    • Declare separate pointers for each stack (operand 1, operand 2, result).
    • Push the digits of each input number onto their own stack. Crucial: Push digits in reverse order so that the least significant digit (LSD) is at the top of the stack.
    • Iterate over the non-empty stacks summing the digits and keep track of the carry.
    • Push the result of each sum onto the result stack.
    • The result stack will have the LSD at the top. You must reverse this stack (or print recursively) so the most significant digit (MSD) is printed first.
    • Print the result followed by a newline.
  4. Implementation Details:

    • Use double pointers (
      struct int_node **
      ) for all stack manipulation functions (e.g.,
      push
      ,
      pop
      ,
      add
      ) to allow the functions to modify the head pointer of the stack passed to them.

Anti-Patterns

  • Do not use arrays to store the full number; use the stack structure provided.
  • Do not use single pointers for stack head modification in helper functions.
  • Do not handle negative numbers or invalid characters.
  • Do not prompt the user with extra text other than the specific error message if input is missing.

Interaction Workflow

  1. Define the
    struct int_node
    .
  2. Implement
    push
    ,
    pop
    , and stack reversal functions using double pointers.
  3. In
    main
    , read command line arguments, populate stacks, perform addition, reverse result stack, and print.

Triggers

  • write a C program to add big integers
  • stack based addition calculator
  • arbitrary size integer addition in C
  • C program double pointers stack