2016-02-27 195 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);