一,比较大小
本题要求将输入的任意3个整数从小到大输出。
输入格式:
输入在一行中给出3个整数,其间以空格分隔。
输出格式:
在一行中将3个整数从小到大输出,其间以“->”相连。
#include<stdio.h>
int main()
{
int a,b,c,x,y,z;
scanf("%d%d%d",&x,&y,&z);
if(x>y)
{
if(z>x){a=z;b=x;c=y;}
else if(z>y){a=x;b=z;c=y;}
else {a=x;b=y;c=z;}
}
else
{
if(z>y){a=z;b=y;c=x;}
else if(z>x){a=y;b=z;c=x;}
else {a=y;b=x;c=z;}
}
printf("%d->%d->%d",c,b,a);
return 0;
}
二,计算分段函数
本题目要求计算下列分段函数f(x)的值:
注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂。
输入格式:
输入在一行中给出实数x。
输出格式:
在一行中按“f(x) = result”的格式输出,其中x与result都保留两位小数。
#include <stdio.h>
int main()
{
double x,y;
scanf("%lf",&x);
if (x>=0)
y=pow(x,0.5);
else
y=pow((x+1),2)+2*x+1/x;
printf("f(%.2lf) = %.2lf",x,y);
return 0;
}
三,计算运费
运输公司对用户计算运费。路程(s)越远,每千米运费就越低。标准如下:
- s<250km ,没有折扣;
- 250km≤s<500km, 2%的折扣;
- 500km≤s<1000km, 5%的折扣;
- 1000km≤s<2000km,8%计算运费的折扣;
- 2000km≤s<3000km,10%的折扣;
- 3000km≤s,15%的折扣。
设每千米每吨货物的基本运费为p,货物重为 w,距离为s,折扣为d,则总运费f的计算公式为:
f=p×w×s×(1-d)
输入格式:
在一行中以小数形式输入基本运费、货重和距离,以空格作为分隔符。
输出格式:
在一行输出计算出来的运费,精确到小数点后2位的值。
#include <stdio.h>
int main()
{
float f,p,w,s;
scanf("%f%f%f",&p,&w,&s);
if (s>=3000)
f=p*w*s*0.85;
else if (2000<=s&&s<3000)
f=p*w*s*0.90;
else if (1000<=s&&s<2000)
f=p*w*s*0.92;
else if (500<=s&&s<1000)
f=p*w*s*0.95;
else if (250<=s&&s<500)
f=p*w*s*0.98;
else if (s<250)
f=p*w*s;
printf("freight=%.2f",f);
return 0;
}
四,A除以B
给定两个绝对值不超过100的整数A和B,要求你按照“A/B=商”的格式输出结果。
输入格式:
输入在第一行给出两个整数A和B(−100≤A,B≤100),数字间以空格分隔。
输出格式:
在一行中输出结果:如果分母是正数,则输出“A/B=商”;如果分母是负数,则要用括号把分母括起来输出;如果分母为零,则输出的商应为Error。输出的商应保留小数点后2位。
#include <stdio.h>
int main()
{
double A,B;
scanf("%lf %lf",&A,&B);
if (B>0)
printf("%.0lf/%.0lf=%.2lf\n",A,B,A/B);
else if (B<0)
printf("%.0lf/(%.0lf)=%.2lf\n",A,B,A/B);
else
printf("%.0lf/%.0lf=Error\n",A,B);
return 0;
}
五,计算火车运行时间
本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。
输入格式:
输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。每个时间的格式为2位小时数(00-23)和2位分钟数(00-59),假设出发和到达在同一天内。
输出格式:
在一行输出该旅途所用的时间,格式为“hh:mm”,其中hh为2位小时数、mm为2位分钟数。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c,d;
scanf("%d %d",&a,&b);
c=b/100-a/100;
d=b%100-a%100;
if (d<0)
{
d=d+60;
c=c-1;
printf("%02d:%02d",c,d);
}
else
printf("%02d:%02d",c,d);
return 0;
}
六,出租车计价
本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:
- 起步里程为3公里,起步费10元;
- 超起步里程后10公里内,每公里2元;
- 超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
- 营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。
输入格式:
输入在一行中给出输入行驶里程(单位为公里,精确到小数点后1位)与等待时间(整数,单位为分钟),其间以空格分隔。
输出格式:
在一行中输出乘客应支付的车费(单位为元),结果四舍五入,保留到元。
#include<stdio.h>
int main()
{
float distance;
float cost;
int time;
scanf("%f%d",&distance,&time);
if (distance>0 && distance<=3)
cost=10+(time/5)*2;
else if (distance > 3 && distance <= 10)
cost=10+2*(distance-3)+(time/5)*2;
else if (distance>10)
cost=24+(distance-10)*3+(time/5)*2;
printf("%.0f",cost);
return 0;
}
七, 后天
如果今天是星期三,后天就是星期五;如果今天是星期六,后天就是星期一。我们用数字1到7对应星期一到星期日。给定某一天,请你输出那天的“后天”是星期几。
输入格式:
输入第一行给出一个正整数D(1 ≤ D ≤ 7),代表星期里的某一天。
输出格式:
在一行中输出D天的后天是星期几。
#include <stdio.h>
int main()
{
int D;
scanf("%d",&D);
if (D<=5)
{printf("%d",D+2);}
else
{printf("%d",D-5);}
return 0;
}
八,三天打鱼两天晒网
中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?
输入格式:
输入在一行中给出一个不超过1000的正整数N。
输出格式:
在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”。
#include<stdio.h>
int main()
{
int N,A;
scanf("%d",&N);
A = N % 5;
if (N > 0 && N <= 1000)
{
if (A == 0 || A == 4)
printf("Drying in day %d" ,N);
else
printf("Fishing in day %d", N);
}
return 0;
}
九,判断输入的字符是哪种类型
通过键盘输入一个字符,编程判断并输出用户输入的是什么类型的字符。
输入格式:
输入一个字符。
输出格式:
在一行中输出该字符是哪种类型的字符。
- 若用户输入字符为
'0'和'9'之间,输出This is a digit. - 若用户输入字符在
'A'和'Z'之间,输出This is a capital letter. - 若用户输入字符在
'a'和'z'之间,输出This is a small letter. - 其他情况,输出
Other character.#include<stdio.h> int main() { char c; scanf("%c", &c); if(c>='0' && c<='9') printf("This is a digit."); else if(c>='A' && c<='Z') printf("This is a capital letter."); else if(c>='a' && c<='z') printf("This is a small letter."); else printf("Other character."); return 0; }
十,两个数的简单计算器
本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。
输入格式:
输入在一行中依次输入操作数1、运算符、操作数2,其间以1个空格分隔。操作数的数据类型为整型,且保证除法和求余的分母非零。
输出格式:
当运算符为+、-、*、/、%时,在一行输出相应的运算结果。若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符号)则输出ERROR。
# include <stdio.h>
int main()
{
int a, b;
char operate;
scanf("%d %c %d", &a, &operate, &b);
switch (operate) {
case '+' :
printf("%d", a+b); break;
case '-' :
printf("%d", a-b); break;
case '*' :
printf("%d", a*b); break;
case '/':
printf("%d", a/b); break;
case '%':
printf("%d", a%b); break;
default :
printf("ERROR");
}
return 0;
}
十一,求一元二次方程的根
本题目要求一元二次方程ax2+bx+c=0的根,结果保留2位小数。
输入格式:
输入在一行中给出3个浮点系数a、b、c,中间用空格分开。
输出格式:
根据系数情况,输出不同结果:
1)如果方程有两个不相等的实数根,则每行输出一个根,先大后小;
2)如果方程有两个不相等复数根,则每行按照格式“实部+虚部i”输出一个根,先输出虚部为正的,后输出虚部为负的;
3)如果方程只有一个根,则直接输出此根;
4)如果系数都为0,则输出"Zero Equation";
5)如果a和b为0,c不为0,则输出"Not An Equation"。
#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c;
double d,x1,x2;
scanf("%f%f%f",&a,&b,&c);
d=(b*b*1.0-4.0*a*c)*1.0;/*判别式*/
x1=(-b+pow(d,0.5))/(2.0*a)*1.0;/*求根公式,注意除号后计算加括号*/
x2=(-b-pow(d,0.5))/(2.0*a)*1.0;
if(d>0&&a!=0){/*两个实根*/
if(x1>x2){
printf("%0.2f\n%0.2f",x1,x2);
}else{
printf("%0.2f\n%0.2f",x2,x1);}}
else if(a==0&&b==0&&c==0){
printf("Zero Equation");}
else if(a==0&&b==0&&c!=0){
printf("Not An Equation");}
else if(d==0){/*一个实根*/
printf("%0.2f",-b/(2.0*a)*1.0);}
else if(d<0&&a!=0){/*复数根*/
if(-b/(2*a)!=0){/*对称轴为复数根实部,负判别式开根号为复数根虚部*/
printf("%0.2f+%0.2fi\n",-b/(2*a)*1.0,1.0*sqrt(-d)/(2.0*a));
printf("%0.2f-%0.2fi\n",-b/(2*a)*1.0,1.0*(sqrt(-d))/(2.0*a));}
else{printf("0.00+%.2fi\n",1.0*sqrt(-d)/(2.0*a));
printf("0.00-%.2fi\n",1.0*sqrt(-d)/(2.0*a));}
}else{
printf("%0.2f",(c/b)*(-1.0));}
return 0;
}
十二,计算空间某点高度
有4个圆塔,圆心分别为(2,2),(-2,2),(-2,-2),(2,-2),圆半径为1。这4个塔的高度分别为5m,7m,10m,18m,塔外无建筑物,编写程序,输入一点的坐标,输出高度。
输入格式:
在一行中输入一个点的横纵坐标,以”,”分隔。
输出格式:
输出该点的高度。
#include <stdio.h>
int main()
{
int h;
float x1=2,y1=2;
float x2=-2,y2=2;
float x3=-2,y3=-2;
float x4=2,y4=-2;
float x,y,d1,d2,d3,d4;
scanf("%f,%f",&x,&y);
//求该点到各中心点的距离
d1=(x-x1)*(x-x1)+(y-y1)*(y-y1);
d2=(x-x2)*(x-x2)+(y-y2)*(y-y2);
d3=(x-x3)*(x-x3)+(y-y3)*(y-y3);
d4=(x-x4)*(x-x4)+(y-y4)*(y-y4);
//判断该点是否在塔外
if(d1>1 && d2>1 && d3>1 && d4>1)
h=0;
else if (d1<=1 && d2>=1 && d3>=1 && d4>=1)
h=5;
else if (d1>=1 && d2<=1 && d3>=1 && d4>=1)
h=7;
else if (d1>=1 && d2>=1 && d3<=1 && d4>=1)
h=10;
else if (d1>=1 && d2>=1 && d3>=1 && d4<=1)
h=18;
printf("%dm",h);
return 0;
}
C#编程:结构化习题集——条件与选择
本文提供一系列C#编程练习,涵盖比较大小、分段函数计算、运费计算、整数除法等多个场景。通过这些习题,旨在帮助读者熟练掌握if_else结构在不同问题中的应用。
&spm=1001.2101.3001.5002&articleId=126177324&d=1&t=3&u=ecd456b45bae46da90479fec395976e4)
2万+

被折叠的 条评论
为什么被折叠?



