簡體   English   中英

未在此范圍內聲明錯誤

[英]was not declared in this scope errors

我希望該程序計算總工資,但是輸出錯誤。

#include<stdio.h>

int main() {
    float base-salary = 1500.00;
    float bonus-rate = 200.00;
    float commission-rate = quantity * 2/100;
    int quantity;
    float Price;
    float Gross-salary;

    printf("Enter quantity of computers sold\n");
    scanf("%d",&quantity);
    printf("Enter Price of computers sold\n");
    scanf("%f",&Price);

    Gross-salary = base-salary + (quantity * bonus-rate) + (quantity * Price) * commission-rate;
    printf("Gross salary equals :%f",Gross-salary);


    //Gross salary = base salary + (quantity * bonus rate) + (quantity * Price) * commission rate


}

它吐出這些錯誤。

5 13 Documents \\ Untitled10.cpp [錯誤]預期在'-'令牌之前的初始化程序16 2 Documents \\ Untitled10.cpp [錯誤]在此范圍內未聲明'Gross'16 2 Documents \\ Untitled10.cpp [錯誤]'基本'在此范圍內未聲明16 2 Documents \\ Untitled10.cpp [錯誤]在此范圍內未聲明'salary'16 2 Documents \\ Untitled10.cpp [錯誤]在此范圍內未聲明'bonus'16 2 Documents \\ Untitled10.cpp [錯誤]未在此范圍內聲明“ rate” 16 2 Documents \\ Untitled10.cpp [錯誤]未在此范圍內聲明“ commission”

不能使用-破折號在C ++標識符名稱。 切換到下划線。

引用http://en.cppreference.com/w/cpp/language/identifiers

標識符是由數字,下划線,小寫和大寫拉丁字母以及大多數Unicode字符組成的任意長序列(不允許使用控制字符和基本源字符集中的字符)。 有效標識符必須以非數字字符(拉丁字母,下划線或Unicode非數字字符)開頭。 標識符區分大小寫(小寫字母和大寫字母是不同的),並且每個字符都很重要。

此外,在計算中使用浮動除法,而不是整數。

float commission-rate = quantity * 2/100;

由於數量為int ,將執行整數除法,並且您只會得到結果的截斷部分。 這樣做:

float commission_rate = quantity * 2/100.f;

在聲明變量之前,使用變量存在另一個錯誤:

float commission_rate = quantity * 2/100;
int quantity;

數量未聲明,因此不能在第1行中使用。交換這些語句。 另外,請注意,C ++ 不是符號數學語言。 評估表達式時會獲取變量值。 首先聲明一個公式,然后初始化其包含的變量,這是一個常見的初學者錯誤。 因此,必須將第1行移到輸入部分的下方。

您的固定代碼可能如下所示:

const float base_salary = 1500.f;
const float bonus_rate = 200.f;
int quantity;
float price;
float gross_salary;

printf("Enter quantity of computers sold\n");
scanf("%d",&quantity);
printf("Enter Price of computers sold\n");
scanf("%f",&price);

const float commission_rate = quantity * 2/100.f;
const gross_salary = base_salary + quantity * bonus_rate + \
                     quantity * price * commission_rate;
printf("Gross salary equals :%f",gross_salary);

您不能在變量名稱聲明中使用減號(-)。 使用下划線符號

float base_salary = 100; 或camelCase(我更喜歡): float baseSalary = 100;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM