Informática, perguntado por breno5959, 1 ano atrás

AJUDA EM C

Escreva um algoritmo em PORTUGOL que calcule o imposto de renda de um grupo de contribuintes considerando: - Os dados de cada contribuinte, número do CPF, número de dependentes e renda anual, serão digitados pelo usuário através do teclado; UFMG – ICEx – DCC – Programação de Computadores – 1º. Sem 2005 – David Menoti 12 - Para cada contribuinte será feito um desconto de R$ 300,00 por dependente; - Os valores da alíquota para cálculo do imposto são:

Renda Anual Líquida Alíquota

Até R$ 12.000,00 Isento

De R$ 12.000,00 a R$ 25.000,00 12%

Acima de R$ 25.000,00 27,5%

Finalizar o algoritmo com o CPF ZERO



NA PARTE " printf ("\nInforme a renda anual: ");
scanf ("%f",&rendanual);

printf ("\n\nO contibuinte possui dependentes? se sim quantos? 0 /p nao ");
scanf ("%i",&depen);" O PROGRAMA NAO ESPERA EU DIGITAR A RENDA E JA PULA PARA A PARTE DE CONTRIBUINTES :

segue o condigo completo:
#include

int main(){

float salmin=937.00,cpf,rendanual,renda,impostorend;
int depen,desc;

printf ("Informe o seu numero de CPF: ");
scanf("&f",&cpf);

while (cpf!=0){
printf ("\nInforme a renda anual: ");
scanf ("%f",&rendanual);

printf ("\n\nO contibuinte possui dependentes? se sim quantos? 0 /p nao ");
scanf ("%i",&depen);

desc=depen*300;

renda=rendanual-desc;

if (renda <= 12000){
printf ("O contibuinte e isento do imposto de renda.");
}
if (renda >= 12000 && renda <=25000){
impostorend=(renda*0.88)-renda;
printf("O imposto a ser pago pelo contribuinte e de :%f",impostorend);
}
if (renda >25000){
impostorend=(renda*0.725)-renda;
printf("O imposto a ser pago pelo contribuinte e de :%f",impostorend);
}
printf ("\nInforme o seu numero de CPF: \nDigite 0 para sair");
scanf("&f",&cpf);

}
}


Soluções para a tarefa

Respondido por bokomoko
0
o erro está aqui
scanf("&f",&cpf);

Ou você usa scanf("%f", &cpf); ou ... faz o cpf string.

Observe, que CPF não é um campo float. Porque você não vai fazer cálculos com o cpf em si. Mas ... se por como float vai funcionar. Experimente e conte o resultado.

Respondido por yancarvalho3
0

Sobre o algoritmo escrito na linguagem de programação C descrito acima, os problema está nos campos:

  • Linha 1: falta especificar o include.
  • Linha 9: a tipagem de dados float "f" no scanf está como "&f" e não "%f" como deveria ser, por isso dá um bug no código.
  • Linha 33: a saída ou continuação de dados não estão claras, tente mudar para printf("\nDigite 0 para sair ou algum outro CPF para continuar");.
  • Linha 34: A tipagem de dados está errada exatamente igual acontece na linha 9.

Mas por que esse erro acontece no meu algoritmo?

É bem simples, às vezes por alguma desatenção nossa ocorre de errarmos alguma parte do código, tente prestar atenção no % dentro do scanf para que sua variável fique adequada e alocada na memória, uma dica importante também seria utilizar o char para alocar o CPF, porém nesse caso talvez tivesse problemas com a função while().

Saiba mais sobre linguagem de programação C aqui: https://brainly.com.br/tarefa/24403342

#SPJ2

Anexos:
Perguntas interessantes