分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
按工资高低纳税,已知不同工资s的税率p如下: s<1000 p=0%
1000≤s<2000 p=5%
2000≤s<3000 p=8%
3000≤s<5000 p=10%
5000≤s p=15%
编一程序,输入工资数,求纳税款和实得工资数,
要求:(1)改错; (2)用if多分支形式重写程序。
main()
{ float s,p,t,s1;
int m;
scanf(“%d”,&s);
m=s%1000;
if s>5000 m=5;
switch (m)
{ case 0: p=0;
case 1: p=005; break;
case 2: p=008; break;
case 3:
case 4: p=01; break;
case 5: p=015; break;
}
t=sp; s1=s-t;
printf(“%2f,%2f” ,t, s1);
}
解析:
错误有两个:
第一
m=s%1000;
不能用求余,要用除,而且要强制转化
第二
case 0: p=0; 这一行少一个break;
第三
if s>5000 m=5;
应该加括号
不足有一个
scanf(“%d”,&s);
应该为 %f
程序修改为:
——-——--
main()
{
float s,p,t,s1;
int m;
scanf("%f",&s);
m=(int)s/1000;
if (s>5000) m=5;
switch (m)
{ case 0: p=0; break;
case 1: p=005; break;
case 2: p=008; break;
case 3:
case 4: p=01; break;
case 5: p=015; break;
}
t=sp; s1=s-t;
printf("%2f,%2f" ,t, s1);
}
用If 为
main()
{
float s,p,t,s1;
int m;
scanf("%f",&s);
m=(int)s/1000;
if (s>5000) m=5;
if (m==0)
p=0
else if (m==1)
p=005;
else if (m==2)
p=008;
else if (m==3 || m==4)
p=01;
else if (m==5)
p=015;
t=sp; s1=s-t;
printf("%2f,%2f" ,t, s1);
}
#include <stdioh>
#include <mathh>
int IntToString(int num, char str[])
{
int number=0;
int t = num, index=0;
do
{
if(t%10%2!=0)
index++;
}while(t/=10);
str[index] = 0;
t=0;
while(t<index)
{
int k;
if((num%10)%2!=0)
{
k=(num%10)pow(10,t);
number+=k;
t++;
}
num /= 10;
}
return number;
}
void main()
{
char str[100];
int n;
printf("输入一个整型数");
scanf("%d",&n);
int m=IntToString(n, str);
printf("转换后的%d\n", m);
}
以上就是关于c语言程序设计题目全部的内容,包括:c语言程序设计题目、C语言程序编程问题 题目较长 请大哥看下、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)