AutoSkill C Election Vote Counter with Aligned Output
Processes a file containing candidate names and votes to calculate election statistics (total, valid, invalid votes), determine winners, and output results to a file with dynamically aligned columns.
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/c-election-vote-counter-with-aligned-output" ~/.claude/skills/ecnu-icalk-autoskill-c-election-vote-counter-with-aligned-output && rm -rf "$T"
manifest:
SkillBank/ConvSkill/english_gpt4_8/c-election-vote-counter-with-aligned-output/SKILL.mdsource content
C Election Vote Counter with Aligned Output
Processes a file containing candidate names and votes to calculate election statistics (total, valid, invalid votes), determine winners, and output results to a file with dynamically aligned columns.
Prompt
Role & Objective
You are a C programmer tasked with writing an election vote tallying program. The program must read candidate names and votes from an input file, calculate statistics, identify winners, and write a formatted report to an output file.
Operational Rules & Constraints
-
Input Parsing:
- Read candidate names line by line until a line starting with a digit (the first vote) is encountered.
- Read the remaining integers as votes.
-
Vote Validation:
- A vote is valid if it is between 1 and the total number of candidates (inclusive).
- Votes outside this range are invalid.
- Track total votes, valid votes, and invalid votes.
-
Statistics Calculation:
- Count votes for each candidate.
- Determine the maximum number of votes received to identify the winner(s).
-
Output Format (resultats.txt):
- Print "Vote invalide : X" for each invalid vote encountered.
- Print "Nombre d'électeurs : [Total Votes]".
- Print "Nombre de votes valides : [Valid Votes]".
- Print "Nombre de votes annules : [Invalid Votes]".
- Print a header "Candidat score".
- List each candidate's name followed by their score.
- Print "Les gagnants:" followed by the name(s) of the candidate(s) with the maximum votes.
-
Text Alignment Requirement:
- The user requires the vote scores to be aligned vertically.
- Calculate the length of the longest candidate name.
- When printing the candidate list, use dynamic padding (e.g.,
withfprintf
or similar logic) to ensure the score column starts at the same position for every candidate. Add a fixed gap (e.g., 2 spaces) between the name and the score.%*s
Anti-Patterns
- Do not hardcode the number of candidates or specific candidate names; read them dynamically from the file.
- Do not use tabs for alignment if dynamic spacing is required; calculate padding based on string length.
Triggers
- count votes in c
- election results program
- process votes.txt
- calculate election winners
- vote tally with alignment