已经指出错误,并部分改正,或提供改正方法.具体问题再交流...
#include
void main()
{
char name [30],position;
int ID;
float BS,IT,SA,CM,BONUS,EPF;
printf ("\n Input StaffName,Id number \n") ;
scanf (" %s,%f",&name,&ID );////@2 ID 声明为int型要用 %d ,改为:scanf (" %s,%d",&name,&ID );
printf ("1-Manager \n") ;
printf (" 2-Engineer \n") ;
printf (" 3-Technician \n") ;
printf (" 4-Officer \n") ;
scanf ("%c",&position); ///////@3 少了引号,已经改正
switch (position)
{
case '1' : printf ("Manager \n");break;
case '2': printf (" Engineer\n");break;
case '3': printf (" Technician\n");break;
case '4': printf (" Officer \n");break;
default :break;
}
printf ("\n Input BasicSalary \n");
scanf ("%f",&BS):
if (BS >=5000)
{
IT = (BS*0.10);/////////////分号啊! 已经改正
}
printf ("incomeTax : %0.2f",IT);//////@4 应该要用 %8.2f 点号前面的数字表示数字有多少位包含小数点后面的.
else ////////@4.1 上面的printf一句应该放在大括号的里面.
printf ("no imcomeTax",IT);////////////// @5 else的条件下应该先把IT初始化,赋一个0.
scanf ( \n %f,&IT);/////////@6 这一句你想完成什么作用呢?因为写得比较乱..
printf ("Staff Sales Amount :\n");
scanf ("%f",&SA); /////@7 少了引号,已经改正
if (SA >=10000)
{
CM = SA * 0.07; ///////////@8 有两行没有分号结束符.. 下面上面都有同样错误.
else if (SA >= 5000)
CM = SA* 0.05;
else
printf (" No commmission\n ",CM);
}
printf ("Commission : %0.2f",CM);
scanf ("%f",&CM);////@9引号及输入格式错误,已经改正
BONUS = BS+ CM- IT -EPF;
printf ("\n Bonus: %8.2f",BONUS);////@10 同错误4 ,已经改正
}
/// 前面那位只是把程序改得能编译了,没有理解你的程序
/// 你的这些错误都是输入错误,漏了一行程序,导致上面那位没看懂。:)
/// 估计你这个是抄书的程序吧
/// 我按原格式修改,下面每一个注释都是一个错误
/// 其实,这些错误,你编译后,都可以得到相应的提示
/// 学习的慢慢来,多练习就好了
void main()
{
char name [30],position;
int ID;
float BS,IT,SA,CM,BONUS,EPF;
printf ("\n Input StaffName,Id number \n") ;
scanf (" %s,%f",&name,&ID );
printf ("1-Manager \n") ;
printf (" 2-Engineer \n") ;
printf (" 3-Technician \n") ;
printf (" 4-Officer \n") ;
scanf ("%c",&position); // 缺少 "
switch (position)
{
case '1' : printf ("Manager \n");break;
case '2': printf (" Engineer\n");break;
case '3': printf (" Technician\n");break;
case '4': printf (" Officer \n");break;
default :break;
}
printf ("\n Input BasicSalary \n");
scanf ("%f",&BS); // 冒号
if (BS >=5000)
{
IT = (BS*0.10); // 却分号
}
if(IT>0) // 我加的,我猜少了这行
printf ("incomeTax : %0.2f",IT);
else
printf ("no imcomeTax",IT);
scanf ( "\n %f",&IT); // 缺 ""
printf ("Staff Sales Amount :\n");
scanf ("%f",&SA); // 缺"
if (SA >=10000)
{
CM = SA * 0.07; // 分号
} // 少了
else if (SA >= 5000)
CM = SA* 0.05; // 分号
else
{ // 少了
printf (" No commmission\n ",CM);
}
printf ("Commission : %0.2f",CM);
scanf ("%0.2f",&CM); // 缺“”
BONUS = BS+ CM- IT -EPF; //缺;
printf ("\n Bonus: %0.2f",BONUS);
}
scanf (%c",&position);
少个引号
scanf ( \n %f,&IT);
也加上引号
还有这scanf (%0.2f,&CM);
主要问题是 代码不够规范额 你可以写些一些短的的小程序,联系联系。
装个有道词典吧 不懂得函数 鼠标放上去 会有简单的解释!
#include
void main()
{
char name [30],position;
int ID;
float BS,IT,SA,CM,BONUS,EPF;
printf ("\n Input StaffName,Id number \n") ;
scanf ("%s,%f",&name,&ID );
printf ("1-Manager \n") ;
printf ("2-Engineer \n") ;
printf ("3-Technician \n") ;
printf ("4-Officer \n") ;
scanf ("%c",&position);
switch (position)
{
case '1' : printf ("Manager \n");break;
case '2': printf ("Engineer\n");break;
case '3': printf ("Technician\n");break;
case '4': printf ("Officer \n");break;
default :break;
}
printf ("\n Input BasicSalary \n");
scanf ("%f",&BS);
if (BS >=5000)
{
IT = (BS*0.10);
printf ("incomeTax : %0.2f",IT);
}
else
{
printf ("no imcomeTax",IT);
}
scanf ("\n %f",&IT);
printf ("Staff Sales Amount :\n");
scanf ("%f",&SA);
if (SA >=10000)
{
CM = SA * 0.07;
}
else if (SA >= 5000)
{
CM = SA* 0.05;
}
else
{
printf(" No commmission\n ");
}
printf("Commission : %0.2f",CM);
scanf("%0.2f",&CM);
BONUS = BS+ CM- IT -EPF;
printf ("\n Bonus: %0.2f",BONUS);
}
#include《stdio.h>
#include
错的一大堆.....