OpenParable
Skip to content
← Back to skills

C Election Vote Counter with Aligned Output

Documents

C Election Vote Counter with Aligned Output is an Agent Skill for documents published in the ECNU-ICALK/AutoSkill repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.

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.

View on GitHub ↗
QUICK START

How to use this skill

Bring this guide into your coding agent with a prompt tailored to the tool you use.

  1. Open your project in Codex.
  2. Copy and paste the prompt below.
  3. Review files and risks before approving any action.
Prompt to paste
Inspect the Agent Skill at https://github.com/ECNU-ICALK/AutoSkill/blob/HEAD/SkillBank/ConvSkill/english_gpt4_8/c-election-vote-counter-with-aligned-output/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/c-election-vote-counter-with-aligned-output, but wait for my approval before writing files or running scripts.

Copying this prompt does not install or run the skill. Review third-party files before use.

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