C stack based big integer addition
Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/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.From its SKILL.md
npx -y skills add ECNU-ICALK/AutoSkill --skill c_stack_based_big_integer_additionAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
3.1 KB, 555 tokens by cl100k_base, as published. Nobody here has run it
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
-
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:
program <operand one> <operand two>and exit. - 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 (
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.
- 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,pop, and stack reversal functions using double pointers. - 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
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.