三种控制结构
1. 沈阳市居民生活用电阶梯电价收费问题
【问题描述】沈阳市居民生活用电已经实行阶梯电价,用户每月耗电第一档电量为180度及以内,每度电0.50元;第二档电量为180度以上至280度,每度电0.55元;第三档电量为280度及以上,每度0.85元。现要求输入某居民用电量,输出其应缴费用,小数点后保留1位。
【输入形式】<非负整数>
【输出形式】<浮点数>
【样例输入】180
【样例输出】90.0
【样例输入】280
【样例输出】145.0
【样例输入】380
【样例输出】230.0
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
int main()
{
int a;
double b;
scanf("%d", &a);
if (a <= 180)
b = 0.50 * a;
else if (a >= 181 && a <= 280)
b = 0.55 * (a - 180) + 0.5 * 180;
else if (a >= 281)
b = (a - 280) * 0.85 + (280 - 180) * 0.55 + 180 * 0.5;
printf("%.1lf", b);
return 0;
}
//SAU-计科2304-NineSense
//仅供参考 学习还需自己努力
2. 计算战机需要的加油量
【问题描述】不同的战机飞行时平均油耗是不同的,歼十百公里耗油是142升,F16百公里耗油是146升,苏27百公里耗油是312升,现知道飞机型号和所需飞行的公里数,请计算一下,该战机所需的油量是多少?(注:百公里耗油是指一百公里需要的油量)
【输入形式】输入两个数据,第一个整数表示战机的型号,整数1代表歼十,整数2表示F16,整数3表示苏27;第二个实数表示飞机将要飞行的公里数。
【输出形式】输出所需的油量,输出保留两位小数。
【样例输入】2 300
【样例输出】438.00
【样例输入】4 100
【样例输出】error
【样例输入】1 -100
【样例输出】error
【样例说明】程序中实数定义统一用double类型。
#include <stdio.h>
int main()
{
int type;
double distance;
scanf("%d %lf", &type, &distance);
if (distance > 0)
{
switch (type)
{
case 1:printf("%.2lf", distance * 1.42); break;
case 2:printf("%.2lf", distance * 1.46); break;
case 3:printf("%.2lf", distance * 3.12); break;
default:printf("error"); break;
}
}
else
printf("error");
return 0;
}
//SAU-计科2304-NineSense
//仅供参考 学习还需自己努力
3. 统计一行字符中不同字符个数
【问题描述】输入一行字符,分别统计其中的英文字母、空格、数字和其它字符的个数。
【输入形式】一行字符,以回车结束
【输出形式】<字母数> <空格数> <数字数> <其它字符数>
【样例输入】hello world 2015!
【样例输出】10 2 4 1
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
char a;
int letter = 0;
int space = 0;
int num = 0;
int chars = 0;
while((a = getchar()) != '\n')
{
if(a >= 'a' && a <= 'z' || a >= 'A' && a <= 'Z')
{
letter++;
}
else if(a == ' ')
{
space++;
}
else if(a >= '0' && a <= '9')
{
num++;
}
else
{
chars++;
}
}
printf("%d %d %d %d",letter,space,num,chars);
return 0;
}
//SAU-计科2304-NineSense
//仅供参考 学习还需自己努力
4. 统计N以内的完全平方数
【问题描述】统计N(N<100000)以内的完全平方数的个数(一个数如果是另一个整数的完全平方,那么我们就称这个数为完全平方数,也叫做平方数,比如:0,1,4,9,16,25,36等。)
【输入形式】整数N
【输出形式】个数
【样例输入】25
【样例输出】6
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <math.h>
int main() {
int n, i, j;
int total = 0;
scanf("%d", &n);
if (n <= 100000 && n >= 0)
{
for (i = 0; i <= n; i++)
{
for (j = 0; j <= sqrt(n); j++)
{
if (sqrt(i) == j)
{
total++;
}
}
}
printf("%d", total);
}
else {
printf("error");
}
return 0;
}
//SAU-计科2304-NineSense
//仅供参考 学习还需自己努力
6. 将输入的小写英文字母修改为大写英文字母
【问题描述】输入1个字符,如果是小写英文字母,则将其修改为大写英文字母,并输出该大写字母;如果是其它字符,则保持不变,原样输出。
【输入形式】1个字符
【输出形式】1个字符
【样例输入】e
【样例输出】E
【样例输入】6
【样例输出】6
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
char w;
scanf("%c" ,&w);
if(w>='a'&&w<='z')
w = w - 32 ;
printf("%c",w);
}
//SAU-计科2304-NineSense
//仅供参考 学习还需自己努力
7. 求整数中特定位的数字并输出
【问题描述】输入2个正整数n和k,返回n中从右向左数第k位数字的值。
【输入形式】输入两个正整数,正整数之间用单个空格隔开。
【输出形式】输出一个正整数
【样例输入】231456 3
【样例输出】4
【样例输入】1456 5
【样例输出】0
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
long n;
int m ,k;
int i = 0;
scanf("%ld %d",&n,&k);
while(i < k)
{
m = n % 10;
n /= 10;
i++;
}
printf("%d",m);
return 0;
}
//SAU-计科2304-NineSense
//仅供参考 学习还需自己努力
8. 某序列求和
【问题描述】从键盘输入正整数 n,编程实现序列 2/1,3/2,5/3,8/5,13/8,21/13 … 的前 n 项之和。
【输入形式】输入正整数 n。
【输出形式】输出求和结果,保留小数点后两位。
【样例输入】1
【样例输出】2.00
【样例输入】25
【样例输出】40.75
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n,i;
double sum = 0, x = 2, y = 1, t;;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
sum += x / y;
t = x;
x = y + x;
y = t;
}
printf("%.2lf", sum);
return 0;
}
//SAU-计科2304-NineSense
//仅供参考 学习还需自己努力
之前分享过的相同题目就不在这里进行展示了
今天的内容就分享这么多
求三连!!!
求关注!!!