(1)有3个整数a,b,c,由键盘输入,输出其中最大的数。
//有3个整数a,b,c,由键盘输入,输出其中最大的数。
#include<stdio.h>
int main()
{
int a,b,c,max;
scanf("%d %d %d",&a,&b,&c);
max=a>b?a:b;
max=max>c?max:c;
printf("max=%d",max);
return 0;
}在这里插入代码片
(2)从键盘输入一个小于1000的正数,要求输出它的平方根
(如果平方根不是整数,则要求输出整数部分)
要求在输入数据后先对其检查是否为小于1000的正数。如不是则重新输入。
//从键盘输入一个小于1000的正数,要求输出它的平方根
//(如何平方根不是整数,则要求输出整数部分)
//要求在输入数据后先对其检查是否为小于1000的正数。如不是则重新输出。
#include<stdio.h>
#include<math.h>
int main()
{
int i,g;
while (1)
{
scanf("%d",&i);
if(i<1000&&i>0)
{
break;
}
else
{
printf("请重新输入:");
continue;
}
}
g=sqrt(i);
printf("平方根g=%d",g);
return 0;
}
(3)有一个函数:
y={x (x<1)
2x-1 (1<=x<10)
3x-11 (x>=10)
//写程序,输入x的值,输出y相应的值。
#include<stdio.h>
int main()
{
int x,y;
scanf("%d",&x);
if(x<1)
{
y=x;
}
else if(x>=1&&x<10)
{
y=2*x-1;
}
else
{
y=3*x-11;
}
printf("y=%d",y);
return 0;
}
(4)给出一百分制成绩,要求输出成绩等级’A’、‘B’、‘C’、‘D’、‘E’。90分以上为’A’,80-89分为’B’,70-79分为’C’,60~69分为’D’,60分以下为’E’。
#include<stdio.h>
int main()
{
int x,score;
scanf("%d",&score);
x=score/10;
switch(x)
{
case 10:
case 9: printf("A");break;
case 8: printf("B");break;
case 7: printf("C");break;
case 6: printf("D");break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0: printf("E");break;
}
return 0;
}
(5)给一个不多于5位的正整数,要求:
1.求出它是几位数;
2.分别输出每一位数字;
3.按逆序输出各位数字,例如原数为321,应输出123。
//给一个不多于5位的正整数,要求:
//1.求出它是几位数;
//2.分别输出每一位数字;
//3.按逆序输出各位数字,例如原数为321,应输出123。
#include<stdio.h>
int main()
{
int shu,n=0,k;
scanf("%d",&shu);
printf("分别输出每位数字:%d\n",shu);
printf("将数字倒叙输出:");
for(shu;shu>0;shu=shu/10)
{
n+=1;
k=shu%10;
printf("%d",k);
}
printf("\n这个数是几位数:%d",n);
return 0;
}
(6)企业发放的奖金根据利润提成。
利润I<=100000,奖金可提10%
100000<I<=200000 低于100000 10% 高于100000 7.5%
200000<I<=400000 低于200000 7.5% 高于200000 5%
400000<I<=600000 低于400000 5% 高于400000 3%
600000<I<=1000000低于600000 3% 高于600000 1.5%
I>1000000 低于1.5% 高于1%
从键盘输入当月利润I,求应发奖金总数。
要求(1)用if(2)用switch
//用if语句
#include<stdio.h>
int main()
{
int i,m;
printf("请输入利润:");
scanf("%d",&i);
if(i<=100000)
m=i*0.1;
else if(100000<i&&i<=200000)
m=100000*0.1+(i-100000)*0.075;
else if(200000<i&&i<=400000)
m=100000*0.1+100000*0.075+(i-200000)*0.05;
else if(400000<i&&i<=600000)
m=100000*0.1+100000*0.075+200000*0.05+(i-400000)*0.03;
else if(600000<i&&i<=1000000)
m=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(i-600000)*0.015;
else
m=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(i-1000000)*0.01;
printf("%d",m);
return 0;
}
//用switch语句
#include<stdio.h>
int main()
{
int i,m;
printf("请输入利润:");
scanf("%d",&i);
switch(i/100000)
{
case 0:m=i*0.1;break;
case 1:m=100000*0.1+(i-100000)*0.075;break;
case 2:
case 3:m=100000*0.1+100000*0.075+(i-200000)*0.05;break;
case 4:
case 5:m=100000*0.1+100000*0.075+200000*0.05+(i-400000)*0.03;break;
case 6:
case 7:
case 8:
case 9:m=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(i-600000)*0.015;break;
default:m=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(i-1000000)*0.01;break;
}
printf("%d",m);
return 0;
}
(6)输入4个整数,要求按由小到大的顺序输出。(不用数组)
#include<stdio.h>
int main()
{
int a,b,c,d,m;
printf("请输入四个数:");
scanf("%d%d%d%d",&a,&b,&c,&d);
if(a>b)//a<b
{
m=b;
b=a;
a=m;
}
if(b>c)//a<b<c
{
m=c;
c=b;
b=m;
if(a>b)
{
m=b;
b=a;
a=m;
}
}
if(c>d)//a<b<c<d
{
m=d;
d=c;
c=m;
if(b>c)
{
m=c;
c=b;
b=m;
if(a>b)
{
m=b;
b=a;
a=m;
}
}
}
printf("%d %d %d %d",a,b,c,d);
return 0;
}
(7)有4个圆塔。圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为1,见图4.16。
这4个塔的高度为10m,塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为零)
#include<stdio.h>
#include<math.h>
int main()
{
float x,y,r,h;
printf("请输入坐标(x,y)为:");
scanf("%f %f",&x,&y);
if(x>=0)
{
if(y>=0)
{
r=sqrt((x-2)*(x-2)+(y-2)*(y-2));
if(r<=1)
h=10-r*10;
else
h=0;
}
if(y<0)
{
r=sqrt((x-2)*(x-2)+(y+2)*(y+2));
if(r<=1)
h=10-r*10;
else
h=0;
}
}
if(x<0)
{
if(y>=0)
{
r=sqrt((x+2)*(x+2)+(y-2)*(y-2));
if(r<=1)
h=10-r*10;
else
h=0;
}
if(y<0)
{
r=sqrt((x+2)*(x+2)+(y+2)*(y+2));
if(r<=1)
h=10-r*10;
else
h=0;
}
}
printf("h=%0.2fm",h);
return 0;
}