1.数据类型
(1)本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。
输入格式:输入在一行中给出4个整数,其间以空格分隔。
输出格式:在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精确到小数点后一位。
输入样例:1 2 3 4
输出样例:Sum = 10; Average = 2.5
(2)对于输入的两个整数,按照要求输出其和差积商。
输入格式:在一行内输入两个不超过100的非负整数a和b,中间以一个空格间隔,且保证b不为0。
输出格式:共四行,格式是:
[a] + [b] = [a+b]
[a] - [b] = [a-b]
[a] * [b] = [a*b]
[a] / [b] = [a/b]
其中,带有方括号的内容(如[a]
、[b]
、[a+b]
等)表示相应整数或运算结果的值,在输出时要用实际的值代替。并且:如果a能够被b整除,那么a/b应输出为整数格式,否则a/b输出为带两位小数的格式。提示:注意表达式中的空格。
输入样例1:
6 3
输出样例1:
6 + 3 = 9
6 - 3 = 3
6 * 3 = 18
6 / 3 = 2
输入样例2:
8 6
输出样例2:
8 + 6 = 14
8 - 6 = 2
8 * 6 = 48
8 / 6 = 1.33
#include<stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
printf("a + b = %d\na - b = %d\na * b = %d\n",a+b,a-b,a*b);
if(a%b==0){
printf("%d",a/b);
}else{
printf("a / b = %.2f",((double)a/(double)b));
}
return 0;
}
//前面定义了int,printf时要换成double。
//注意:printf中不是输出a+b,而是所输入的数值%d+%d!!!
(3)世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。
输入格式:输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。
输出格式:在一行中按照“yyyy-mm-dd”的格式给出年、月、日。
输入样例:03-15-2017
输出样例:2017-03-15
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d-%d-%d",&a,&b,&c);
printf("%04d-%02d-%02d",c,a,b);
return 0;
}
//输出两位数
(4)有时候人们用四位数字表示一个时间,比如1106表示11点零6分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,即5点30分表示为530。注意,第二个数字表示的分钟数可能超过60,也可能是负数。
输入格式:输入在一行中给出2个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即5点30分表示为530;流逝的分钟数可能超过60,也可能是负数。
输出格式:输出四位数字表示的终止时间。题目保证起始时间和终止时间在同一天内。
输入样例:
1120 110
输出样例:
1310
我写的错误代码:
#include<stdio.h>
int main()
{
int a,b,c,d,h,m;
scanf("%d %d",&a,&b);
h=b/60;//要加的小时
m=b%60;//要加的分钟
c=(m+a%100)/60+h+a/100;//最终总的小时
d=(m+a%100)%60;//最终剩下的分钟
if(c>24){
printf("%d",(c-24)*100+d);
}else{
printf("%d",c*100+d);
}
return 0;
}
别人写的正确代码:
#include<stdio.h>
int main()
{
int hour,min,temp;
scanf("%d %d", &hour, &min);
temp = hour/100*60 + hour%100 + min;
temp = temp/60*100 + temp%60;
printf("%d", temp);
return 0;
}
(转载于:github.com/MuziJin)
//这道题其实转变思路,不是把输入的分钟数加到时间上,而是把时间统统转变成分钟,对于分钟的正负就不必再考虑,就简单多了。
感觉我的脑子真的不好使,分析解决问题的能力差,其实很简单的一道题,被我弄的那么复杂,而且经常想的很复杂,恐怕我是真的没救了,嗷嗷嗷啊~
虽然条条大路通罗马,我走的不仅是绕死的,而且还走错了→→
简直要了我的老命!
(5)本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:起步里程为3公里,起步费10元;超起步里程后10公里内,每公里2元;超过10公里以上的部分加收50%的回空补贴费,即每公里3元;营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。
输入格式:输入在一行中给出输入行驶里程(单位为公里,精确到小数点后1位)与等待时间(整数,单位为分钟),其间以空格分隔。
输出格式:在一行中输出乘客应支付的车费(单位为元),结果四舍五入,保留到元。
输入样例1:2.6 2
输出样例1:10
输入样例2:5.1 4
输出样例2:14
输入样例3:12.5 9
输出样例3:34