#include
main()
{
int
s;
float
gongzi;
do{
printf("请输入工资:
");
scanf("%d",&s);
fflush(stdin);
if(s
<
1000)
{
%d\n您无需缴税;\n",s);
}
else
if(s
>=
1000
&&
s
<
2000)
{
gongzi
=
(float)s
095;
printf("您缴税金额为:%f,",
(float)s
005);
printf("您的税后工资为:
%f\n",gongzi);
}
else
if(s
>=
2000
&&
s
<
3000)
{
gongzi
=
(float)s
092;
printf("您缴税金额为:%f,",
(float)s
008);
printf("您的税后工资为:
%f\n",gongzi);
}
else
if(s
>=
3000
&&
s
<
5000)
{
gongzi
=
(float)s
09;
printf("您缴税金额为:%f,",
(float)s
01);
printf("您的税后工资为:
%f\n",gongzi);
}
else
if(s
>=
5000)
{
gongzi
=
(float)s
085;
printf("您缴税金额为:%f,",
(float)s
015);
printf("您的税后工资为:
%f\n",gongzi);
}
}while(s);/输入工资为0结束/
}
第一题:if(c=a)?你是想写if(c==a)吧,(c=a)是赋值表达式,其作用是将a的值付给c。而该表达式的值是赋值号右边的值,也就是a的值1,所以判断的结果为真,执行“printf("%d\n",c);”,而变量c刚被赋值为a的值,所以显示1要想判断相等,应用“==”。
第二题:if的作用范围是其后面的第一个语句,如果想要if作用多个语句,应用“{}”,例if(a<c&&b<c)
{
t=b;b=a;a=t;
}。而你的程序没加“{}”,所以相当于:
main()
{
int
a=3,b=4,c=5,t=99;
if(b<a&&a<c)
t=a;
a=c;c=t;
if(a<c&&b<c)
t=b;
b=a;a=t;
printf("%d%d%d\n",a,b,c);
}
这样执行完第一个if后,不管()内的值是什么,都会执行a=c;c=t;
第二个if也一样。
第三题:你没有加在case
结束后加break;所以当i==0时,执行完
case
0会继续执行case
2与default后的语句。如果想i为0时只执行case
0,应为:case
0:printf("%d",i);break;
break是用来跳出循环体,或if()、switch()的,如:
for(i=0;i<10;i++)
{
printf("%d",i);
}
for(i=0;i<10;i++)
{
printf("%d",i);if(i==5)
break;
}
第一个for语句会显示0-9;而第二个当i==5时遇到break,就跳出循环,不再执行i=6,79的情况。
对switch()语句也一样,遇到break就会跳出switch()后的{},否则就会按顺序的执行下去。
这个程序很简单,但是如果让我在这里敲字给你解释,那可就需要敲很多字给你了。但是我可以把这个程序变成另一种形式,功能跟这个是完全一样的,你一看应该就知道它是怎么在执行的:
main()
{
int x,y;
scanf("%d",&x);
if(x<10)
{
if(x>-5)
{
if(x>=0)
{
if(x>=5)y=x+1;
else y=x-1;
}
else y=x;
}
}
printf("%d\n",y);}
以上就是关于在c语言里,用if语句编写一个程序,题目如下全部的内容,包括:在c语言里,用if语句编写一个程序,题目如下、C语言程序问题(if语句)、分析下面的程序,特别是if语句部分,如何执行的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)