1.简单累加累积—偶数分母之和
编写函数fun(int m),其功能是:求1/2+1/4+1/6+…+1/2m 的值,并将计算结果以函数返回值形式返回。
在主函数中输入一个正整数m,调用fun函数求1/2+1/4+1/6+…+1/2m 的值,并将计算结果输出。
示例:
输入:9
输出:1.414484
#include <stdio.h>
double fun(int m){
double sum=0;
for (int i=1; i<=m; i++){
sum += 1.0/(2*i);
}
return sum;
}
int main(){
double s;
int m;
scanf("%d", &m);
s = fun(m);
printf("%lf", s);
return 0;
}
2.计算运费
运输公司按照以下方法计算运费。路程(s)越远则每公里运费越低。方法如下:
s < 250 没有折扣
250≤ s < 500 2%折扣
500≤ s < 1000 5%折扣
1000≤ s < 2000 8%折扣
2000≤ s < 3000 10%折扣
3000≤ s 15%折扣
设每公里每吨货物基本运费为p,货物重w(吨),距离为s(km),折!扣为d,总运费计算公式为
f = p * w * s * (1 − d)
设计算法编写程序,要求输入p、w和s,计算总运费(用if语句或者switch语句编写)。
#include <stdio.h>
int main(){
double p, w, d, f;
int s;
scanf("%lf%lf%d", &p, &w, &s);
if (s<250){
d = 0.00;
f = p * w * s;
printf("%lf", f);
}
else if (s>=250&&s<500) {
d = 0.02;
f = p * w * s * (1-d);
printf("%lf", f);
}
else if (s>=500&&s<1000) {
d = 0.05;
f = p * w * s * (1-d);
printf("%lf", f);
}
else if (s>=1000&&s<2000) {
d = 0.08;
f = p * w * s * (1-d);
printf("%lf", f);
}
else if (s>=2000&&s<3000) {
d = 0.10;
f = p * w * s * (1-d);
printf("%lf", f);
}
else if (s>=3000) {
d = 0.15;
f = p * w * s * (1-d);
printf("总运费为:%lf \n", f);
}
return 0;
}
3.数字之和
输入四位数,分别求该数各个数位上的数字之和。
例如
输入 1234
输出 10
#include <stdio.h>
int main(){
int n, a, b, c, d, s;
scanf("%d", &n);
d = n % 10;
c = n % 100 / 10;
b = n / 100 % 10;
a = n / 1000;
s = a+b+c+d;
printf("%d", s);
return 0;
}
4.相反次序重新组合
将一个整数按相反次序重新组合成另一个整数输出的小程序。
编写一个程序,输入一个4位的整数,将其各位按相反次序重新组合成另一个整数输出。
输入值为一个4位整数,输出值也是一个4位整数,但数字顺序相。
注意:输入不足4位的整数,用0填补(例如:12 → 0012);输入超出4位整数,则截取其前4位后进行运算(例如: 123456 → 1234)。
效果如下:
#include <stdio.h>
int main()
{
int number;
printf("请输入一个4位整数:");
scanf("%4d", &number);
int thousand=0,hundred=0,ten=0,a=0,newnumber;
thousand=number%10;
hundred=number/10%10;
ten=number/100%10;
a=number/1000%10;
newnumber=thousand*1000+hundred*100+ten*10+a;
printf("重新组合后:%d",newnumber);
return 0;
}
5.医院收费
输入所在医院费用(药品费、床位费(元/天)、住院天数),打印出应付钱数;再输入病人所付款数,打印出找零金额。
要求按照下面的运行结果编写函数代码,请注意数据类型的选择、输出格式(保留2位小数)。
效果如下:
#include <stdio.h>
int main()
{
double yao,chuang,days,money1,money2;
printf("请输入药品费、床位费/天、住院天数:");
scanf("%lf %lf %lf",&yao,&chuang,&days);
money1 = yao+chuang*days;
printf("应付款:%.2f",money1);
printf("\n实付款:");
scanf("%lf",&money2);
printf("应找零:%.2f",money2 - money1);
return 0;
}
6.排除此数还是输出此数
在程序中输入一个整数,如果这个整数能被3整除或者百位数是3,则打印输出,否则输出“排除此数”。
效果如下:
输入:90。
输出:90。
输入:110。
输出:排除此数。
#include <stdio.h>
int main()
{
int x;
scanf("%d", &x);
if(x%3==0 || x/100==3){
printf("%d", x);
}else{
printf("排除此数");
}
return 0;
}
7.求m以内的奇数之和
给定一个整数m,求m以内的奇数之和,并将其输出。
例如,当m=50时, 即求1+3+5+7+……+49,当m=9时,即求1+3+5+7+9。
效果如下:
输入:9。
输出:25。
#include <stdio.h>
int main()
{
int i,m,sum;
scanf("%d", &m);
sum = 0;
i = 1;
while(i<=m)
{
sum+=i;
i+=2;
}
printf("%d", sum);
return 0;
}
8.求绝对值
根据输入数据输出该值的绝对值,效果如下: 输入:-25。 输出:25。
#include <stdlib.h>
int main()
{
int x = 0;
int y = 0;
scanf("%d", &x);
printf("%d", abs(x));
return 0;
}