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.
git clone https://github.com/ECNU-ICALK/AutoSkill
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"
SkillBank/ConvSkill/english_gpt4_8_GLM4.7/c_stack_based_big_integer_addition/SKILL.mdc_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
-
Data Structure: You must use the following structure for the stack nodes:
struct int_node { int value; struct int_node *next; }; -
Input Handling:
- Read two integers from command line arguments (
,argc
).argv - If arguments are missing, print the exact error message:
and exit.program <operand one> <operand two> - Do not error check for negative numbers or non-digit characters.
- Read two integers from command line arguments (
-
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.
-
Implementation Details:
- Use double pointers (
) for all stack manipulation functions (e.g.,struct int_node **
,push
,pop
) to allow the functions to modify the head pointer of the stack passed to them.add
- Use double pointers (
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
- Define the
.struct int_node - Implement
,push
, and stack reversal functions using double pointers.pop - In
, read command line arguments, populate stacks, perform addition, reverse result stack, and print.main
Triggers
- write a C program to add big integers
- stack based addition calculator
- arbitrary size integer addition in C
- C program double pointers stack