Matheus Alves
Matheus Alves

Reputation: 5

Can't find my mistake! error: expected identifier before '(' token

This is my main code, I did search related mistakes before asking but it just doesn't seem wrong...The IDE says the error is in line 11.

#include<stdio.h>
int main()
{
    float sal;
    printf("Digite o salário bruto: ");
    scanf("%f",&sal);
    if(sal<=2246.75){
       printf("Salário líquido :  ",sal);
    }
    else{
        if(sal>2246.75)&&(sal<2995.70){
            printf("Salário Líquido: ",sal * 0.925);
        }
        else{
            if(sal>2995.70)&&(sal<=3743.19){
                printf("Salário Líquido: ",sal * 0.845);
            }
            else{
                printf("Salário Líquido: ", sal * 0.775);
                return 0;
            }
        }
    }
}

Upvotes: 0

Views: 829

Answers (4)

user3629249
user3629249

Reputation: 16540

there are actually two major kinds of problems with the posted code.

printf("Salário líquido :  ",sal); 

is missing a format specifier for the 'sal' variable

it should be:

printf("Salario liquido : %f", sal);

Note: each of the printf() statements have this same problem

if(sal>2246.75)&&(sal<2995.70){

is missing the outside parens

it should be:

if( (sal>2246.75) && (sal<2995.70) ) {

Note: I added some horizontal spacing for clarity only

the last two 'if' statements have this same problem

Suggest compiling with all warnings enabled.

For gcc, at a minimum, use '-Wall -Wextra -pedantic'

main always returns an 'int'

To avoid that return code being a random value, always end the function with:

return(0);

Upvotes: 1

user2350459
user2350459

Reputation: 351

I think that if(sal>2246.75)&&(sal<2995.70) is supposed to be if(sal>2246.75 && sal<2995.70).

Upvotes: 0

Steephen
Steephen

Reputation: 15824

  1. Your if statement has to correct as follows, here you were missing bracket() for if.

    if( (sal>2246.75)&& (sal<2995.70)){

  2. You have to specify the formatter for printf correctly as follows; here you are missing type formatter.

    printf("Salário Líquido: %f", sal * 0.775);

Both these errors are there in multiple occasions in your code.

Upvotes: 1

Lightness Races in Orbit
Lightness Races in Orbit

Reputation: 385295

if(sal>2246.75)&&(sal<2995.70){

The problem is that the entire condition must be placed within a set of parentheses.

It's fine if you want to further enclose the sub-conditions, but you must surround the entire lot, too:

if ((sal > 2246.75) && (sal < 2995.70)) {

Upvotes: 4

Related Questions