1
resposta

[Bug] Meu código c++ da erro

Tenho que fazer um algoritmo em c++ que leia x nomes, idades e sexo. Tem que retornar a quantidade de masculinos acima de 25 anos só que da esse erro "too many arguments for format"

#include <iostream>

int main(){
    int pessoas=3, contador=0;
    for(int i=0; i < pessoas; i++){
        char nome[10];
        char sexo;
        int idade;

        printf("Entre com o nome\n", i+1);
        scanf("%c", &nome);

        printf("Entre com a idade\n", i+1);
        scanf("%d", &idade);

        printf("Entre com o sexo (M ou F)\n", i+1);
        scanf("%c", &sexo);

        if(sexo=='M' && idade < 25){
            contador++;
        }
    }
    printf("Homens com idade maior que 25 anos: %d\n", contador);
    return 0;
}
1 resposta

Fala Chrystian, tudo certo?

Isso acontece porque na função printf() estão sendo passados dois argumentos: uma string, que será passada na tela, e valores para ser colocados no lugar das máscaras de variáveis nas strings. No entanto, não há máscaras de variáveis, o que resulta em um argumento que não está sendo utilizado.

Ao remover o segundo argumento das funções printf, o comportamento deve ser o desejado.

Além disso, é interessante ao trabalhar com a linguagem C fazer o uso da biblioteca stdio.h, e não iostream, que se trata de uma biblioteca do C++.

Fico à disposição em caso de dúvidas.

Um grande abraço e bons estudos!