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.md
source 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

  1. 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.
  2. 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.
  3. Statistics Calculation:

    • Count votes for each candidate.
    • Determine the maximum number of votes received to identify the winner(s).
  4. 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.
  5. 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.,
      fprintf
      with
      %*s
      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.

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