第三章 编程题 1.
#include
float x,y;
printf(\ scanf(\
if(x<5) y=(x>=0?x:-x);
else if(x<20) y=3*x*x-2*x+1; else y=x/5;
printf(\ return 0; }
2.
#include
3.
#include
case 4: p=8; break; case 5: case 6:
case 7: p=15; break; default:p=20; } tax=s*p/100; s=s-tax; printf(\纳税款: %5.0f\\n\ printf(\实得工资数: %5.0f\\n\ return 0; }
4.
#include
5.
#include
6.
#include
7.
//水仙花数 /*
//方法一
#include
{ int g,s,b; //分别代表个位、十位、百位上的数码 for(b=1;b<=9;b++) //百位上的数码由1变到9 for(s=0;s<=9;s++) //十位上的数码由1变到9 for(g=0;g<=9;g++) //个位上的数码由1变到9 if(g*g*g+s*s*s+b*b*b==g+s*10+b*100) printf(\ return 0; }
//方法二
#include
{ int g,s,b; //分别代表个位、十位、百位上的数码 int x; //x代表一个3位整数 for(x=100;x<=999;x++) { b=x/100;
s=(x-b*100)/10; g=x;
if(g*g*g+s*s*s+b*b*b==x) printf(\ }
return 0; } */
//方法三:移位求余得数码 #include
{ int g,s,b; //分别代表个位、十位、百位上的数码 int x,y; //x代表一个3位整数 for(x=100;x<=999;x++) { y=x;
g=y;
s=(y=y/10); b=(y=y/10);
if(g*g*g+s*s*s+b*b*b==x) printf(\ }
return 0; }
8.
//方法一
#include
{ int num=0,g,s,b; //g,s,b分别代表个位、十位、百位上的数码(1000肯定不符合要求) for(b=1;b<=9;b++) //百位上的数码由1变到9 for(s=0;s<=9;s++) //十位上的数码由1变到9 for(g=0;g<=9;g++) //个位上的数码由1变到9 if(g+s+b==11) { printf(\ num++; }
printf(\ return 0; } /*
//方法二:移位求余得数码 #include
g=y;
s=(y=y/10); b=(y=y/10); if(g+s+b==11) { printf(\ num++; } }
printf(\ return 0; }*/
9.
//方法1——三重循环 #include