printf(“Input x:\\n”); scanf(“%lf”,&x); if(x>=0&&x<=8) y=x+2*x*x+10; else
y=x-3*x*x*x-10;
printf(“x=%f,y=%f\\n”,x,y); }
3.输入一个百分制的成绩t后,按下式输出它的等级,要求分别写成if结构和switch结构。等级为:90~100为“A”,80~89为“B”,70~79为“C”,60~69为“D”,59~0为“E”。
if结构
解:#include
void main() {
double t;
printf(“Input score:\\n”); scanf(“%lf”,&t); if(t>=90&&t<=100) putchar(?A?);
else if(t>=80&&t<90) putchar(?B?);
else if(t>=70&&t<80) putchar(?C?);
else if(t>=60&&t<70) putchar(?D?); else if(t>=0&&t<60) putchar(?E?);
else
printf(“error!\\n”);
}
switch结构
解:#include
void main() {
double t;
printf(“Input score:\\n”); scanf(“%lf”,&t);
switch((int)(t/10)){ case 10:
case 9:putchar(?A?);break; case 8:putchar(?B?);break;
case 7:putchar(?C?);break; case 6:putchar(?D?);break; case 5: case 4:
16
} }
case 3: case 2: case 1:
case 0:putchar(?E?);break; default:printf(“error!\\n”);
4.输入x、y,计算f(x,y)的函数值。 f(x,y)定义如下:
?x?y?x2?y2?f(x,y)???x?y??x?y22x??0x?0x??0x?0y??0y?0y?0y??0解:#include
double x,y,f;
printf(“Input x y:\\n”); scanf(“%lf%lf”,&x,&y); if(x>=0&&y>=0) f=x*x+y*y;
else if(x<0&&y<0) f=x*x-y*y;
else if(x>=0&&y<0) f=x+y;
else if(x<0&&y>=0) f=x-y;
printf(“f(%f,%f)=%f\\n”,x,y,f);
}
5.输入三角形的三条边长a、b、c,计算并输出三角形的面积。要求判断输入的三条边a、b、c三个数是否能构成三角,如果不能构成三角形,则输出提示信息告诉用户。
根据三条边的边长,计算三角形面积的公式如下: s?x?y?z面积?s(s?x)(s?y)(s?z) 2 解:#include
#include
double a,b,c,s,area;
printf(“Input a b c:\\n”); scanf(“%lf%lf%lf”,&a,&b,&c); if(a+b>c&&a+c>b&&b+c>a){ s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
17
printf(“area=%.3f\\n”,area); } else }
6.输入1~7,输出对应的星期一~星期天。
解:#include
void main() {
int s;
printf(“Input s(1~7):\\n”); scanf(“%d”,&s); switch(s){
case 1:printf(“星期一\\n”);break; case 2:printf(“星期二\\n”);break; case 3:printf(“星期三\\n”);break; case 4:printf(“星期四\\n”);break; case 5:printf(“星期五\\n”);break; case 6:printf(“星期六\\n”);break;
} }
7.输入年、月、日,输出是该年的第几天。
解:#include
void main() {
int y,m,d,days;
printf(“Input 年 月 日:\\n”); scanf(“%d%d%d”,&y,&m,&d); days=d; switch(m){
case 12:days+=30; case 11:days+=31;
case 10:days+=30; case 9:days+=31; case 8:days+=31; case 7:days+=30; case 6:days+=31; case 5:days+=30; case 4:days+=31; case 3:
if(y%4==0&&y0!=0||y@0==0)
days+=29;
18
printf(“线段%f,%f,%f不能构成三角形\\n”,a,b,c);
case 7:printf(“星期天\\n”);break;
default:printf(“The s is error!\\n”);
}
}
else days+=28; case 2:days+=31;
printf(“%d月%d日是%d年的第%d天\\n”,m,d,y,days);
8.输入n和相应的n个数,输出它们中所有奇数的乘积。
解:#include
void main() {
int n,i,t,x;
printf(“请输入 n:\\n”); scanf(“%d”,&n);
printf(“请输入%d个数:\\n”,n); for(i=1,t=1;i<=n;i++){ scanf(“%d”,&x); if(x%2==1) t*=x; }
printf(“%d\\n”,t); }
9.输入一个正整数,求它们所有数字之和。
解:#include
void main() {
int a,sum=0;
printf(“请输入一个正整数:\\n”); scanf(“%d”,&a); a=a>=0?a:-a; while(a!=0){ sum+=a; a/=10; }
printf(“%d\\n”,sum); }
10.输入n和相应的n个数,统计输入的数中负数、零及正数的个数。
解:#include
void main() {
int n,i,t,s,k; double x; t=s=k=0;
19