帮一个 C语言小白 朋友撸代码,改进空间还有很大,希望大神多多指教!
一、12-24小时制
编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。
输入格式:
输入在一行中给出带有中间的:符号(半角的冒号)的24小时制的时间,如12:34表示12点34分。当小时或分钟数小于10时,均没有前导的零,如5:6表示5点零6分。
提示:在scanf的格式字符串中加入:,让scanf来处理这个冒号。
输出格式:
在一行中输出这个时间对应的12小时制的时间,数字部分格式与输入的相同,然后跟上空格,再跟上表示上午的字符串AM或表示下午的字符串PM。如5:6 PM表示下午5点零6分。注意,在英文的习惯中,中午12点被认为是下午,所以24小时制的12:00就是12小时制的12:0 PM;而0点被认为是第二天的时间,所以是0:0 AM。
输入样例:
21:11
输出样例:
9:11 PM
代码如下:
#include<stdio.h>
int main(){
int hour,minute;
scanf("%d:%d",&hour,&minute);
if(hour <= 11 && hour >= 0){
printf("%d:%d AM",hour,minute);
}else if(hour > 11 && hour < 24){
if(hour == 12){
printf("%d:%d PM",hour,minute);
}else{
printf("%d:%d PM",hour - 12,minute);
}
}
return 0;
}
二、 三天打鱼两天晒网
中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?
输入格式:
输入在一行中给出一个不超过1000的正整数N。
输出格式:
在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”。
输入样例1:
103
输出样例1:
Fishing in day 103
输入样例2:
34
输出样例2:
Drying in day 34
代码如下:
#include<stdio.h>
int main(){
int N;
scanf("%d",&N);
if(N % 5 == 1 || N % 5 == 2 || N % 5 == 3){
printf("Fishing in day %d",N);
}else{
printf("Drying in day %d",N);
}
return 0;
}
三、计算符号函数的值
对于任一整数n,符号函数sign(n)的定义如下:
请编写程序计算该函数对任一输入整数的值。
输入格式:
输入在一行中给出整数n。
输出格式:
在一行中按照格式“sign(n) = 函数值”输出该整数n对应的函数值。
输入样例1:
10
输出样例1:
sign(10) = 1
输入样例2:
0
输出样例2:
sign(0) = 0
输入样例3:
-98
输出样例3:
sign(-98) = -1
代码如下:
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
if(n < 0){
printf("sign(%d) = -1",n);
}else if(n == 0){
printf("sign(0) = 0",n);
}else{
printf("sign(%d) = 1",n);
}
return 0;
}
四、阶梯电价
为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。请编写程序计算电费。
输入格式:
输入在一行中给出某用户的月用电量(单位:千瓦时)。
输出格式:
在一行中输出该用户应支付的电费(元),结果保留两位小数,格式如:“cost = 应付电费值”;若用电量小于0,则输出"Invalid Value!"。
输入样例1:
10
输出样例1:
cost = 5.30
输入样例2:
100
输出样例2:
cost = 55.50
代码如下:
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
if(n >= 0 && n <= 50){
printf("cost = %.2f",0.53 * n);
}else if(n > 50){
printf("cost = %.2f",0.58 * (n-50) + 26.5);
}else{
printf("Invalid Value!");
}
return 0;
}
五、7-5 两个数的简单计算器
本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。
输入格式:
输入在一行中依次输入操作数1、运算符、操作数2,其间以1个空格分隔。操作数的数据类型为整型,且保证除法和求余的分母非零。
输出格式:
当运算符为+、-、*、/、%时,在一行输出相应的运算结果。若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符号)则输出ERROR。
输入样例1:
-7 / 2
输出样例1:
-3
输入样例2:
3 & 6
输出样例2:
ERROR
#include<stdio.h>
int main()
{
int a,b;
char ch;
scanf("%d %c %d",&a,&ch,&b);
switch(ch){
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");
break;
return 0;
}
}
六、 判断输入的字符是哪种类型
通过键盘输入一个字符,编程判断并输出用户输入的是什么类型的字符。
输入格式:
输入一个字符。
输出格式:
在一行中输出该字符是哪种类型的字符。
- 若用户输入字符为’0’和’9’之间,输出This is a digit.
- 若用户输入字符在’A’和’Z’之间,输出This is a capital letter.
- 若用户输入字符在’a’和’z’之间,输出This is a small letter.
- 其他情况,输出Other character.
输入样例:
6
输出样例:
This is a digit.
#include<stdio.h>
int main(){
char ch;
scanf("%c",&ch);
if(ch >= '0' && ch <= '9'){
printf("This is a digit.");
}else if(ch >= 'A' && ch <= 'Z'){
printf("This is a capital letter.");
}else if(ch >= 'a' && ch <= 'z'){
printf("This is a small letter.");
}else{
printf("Other character."); }
return 0;
}
七、计算工资
某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬;超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬。员工按进公司时间分为新职工和老职工,进公司不少于5年的员工为老职工,5年以下的为新职工。新职工的正常工资为30元/小时,老职工的正常工资为50元/小时。请按该计酬方式计算员工的工资。
输入格式:
输入在一行中给出2个正整数,分别为某员工入职年数和周工作时间,其间以空格分隔。
输出格式:
在一行输出该员工的周薪,精确到小数点后2位。
输入样例1:
5 40
输出样例1:
2000.00
输入样例2:
3 50
输出样例2:
1650.00
代码如下:
#include<stdio.h>
int main()
{
int year,time;
float salary;
scanf("%d %d",&year,&time);
if(year < 5){
if(time <= 40){
salary = 30.0 * time;
}else{
salary = 1200 + 45.0 * (time - 40);
}
}else{
if(time <= 40){
salary = 50.0 * time;
}else{
salary = 2000 + 75.0 * (time - 40);
}
}
printf("%.2f",salary);
return 0;
}
八、成绩转换
本题要求编写程序将一个百分制成绩转换为五分制成绩。转换规则:
- 大于等于90分为A;
- 小于90且大于等于80为B;
- 小于80且大于等于70为C;
- 小于70且大于等于60为D;
- 小于60为E。
输入格式:
输入在一行中给出一个整数的百分制成绩。
输出格式:
在一行中输出对应的五分制成绩。
输入样例:
90
输出样例:
A
#include<stdio.h>
int main(){
int score;
scanf("%d",&score);
if(score >= 90){
printf("A");
}else if(score >= 80 && score < 90){
printf("B");
}else if(score >= 70 && score < 80){
printf("C");
}else if(score >= 60 && score < 70){
printf("D");
}else{
printf("E");
}
return 0;
}