2016-02-27 481 views
0

我希望此計劃能夠計算總薪水,但它會輸出錯誤。未在此範圍內聲明錯誤

#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個文檔\ Untitled10.cpp [錯誤]預期初始化之前 ' - ' 令牌 16 2的文檔\ Untitled10.cpp [錯誤] '毛' 未在此範圍16篇2文獻宣稱\ Untitled10.cpp [Error]'base'不是 在此範圍內聲明16 2 Documents \ Untitled10.cpp [Error] 'salary'未在此範圍內聲明16 2 Documents \ Untitled10.cpp [Error]'bonus'在這個範圍內沒有聲明 16 2 Documents \ Untitled10.cpp [錯誤]'佣金'是 未在此範圍內聲明

回答

1

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

float base_salary = 100;或駝峯(我喜歡): float baseSalary = 100;

+0

首選取決於你加入這個項目的風格,在家裏只要它是一致的和富有成效的,你可以用任何東西。 – iksemyonov

+0

「下劃線表示法」或駱駝案例的優先選擇是一種風格問題,而不是技術問題 - 人們的偏好不同。 – Peter

+0

謝謝我的意思是從我的角度來看,我會編輯這個。 – Ilhan

2

你不能在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);