全国软件专业人才开发与设计赛题之简单题
3.1计算手机通话时长,系统提供开始与结束时间,输出两时间的时间差
输入格式:24:34代表24分34秒
标准输入:24:34 58:23
输出对应的秒数
1 #include <stdio.h>
2 int main()
3 {
4 int pmin,psec,nmin,nsec;//用于对前后时间保存
5 while(scanf("%d:%d %d:%d",&pmin,&psec,&nmin,&nsec)!=EOF)
6 {
7 if(nsec<psec)nmin=(60+nmin-1)%60;//如果结束秒数比开始秒数小,需要调整分钟数
8 int diffsec=(nsec-psec+60)%60+((nmin-pmin+60)%60)*60;
9 printf("%d\n",diffsec);//输出为
10 }
11 return 1;
12 }
2 int main()
3 {
4 int pmin,psec,nmin,nsec;//用于对前后时间保存
5 while(scanf("%d:%d %d:%d",&pmin,&psec,&nmin,&nsec)!=EOF)
6 {
7 if(nsec<psec)nmin=(60+nmin-1)%60;//如果结束秒数比开始秒数小,需要调整分钟数
8 int diffsec=(nsec-psec+60)%60+((nmin-pmin+60)%60)*60;
9 printf("%d\n",diffsec);//输出为
10 }
11 return 1;
12 }
3.2有一种特殊的两位数,比如:25
其平方625的末尾两位正好和25相同。
请写程序计算所有这样的二位数,由小到大排列,每个数据占一行
1 #include <stdio.h>
2 int main()
3 {
4 for(int i=10;i<100;i++)
5 {
6 if(((i-1)*i)%100==0)//i*i-i等价与(i-1)*i 由于题目仅仅是对两位数进行处理,所以可以采用%100的方式
7 printf("%d\n",i);
8 }
9 return 1;
10 }
2 int main()
3 {
4 for(int i=10;i<100;i++)
5 {
6 if(((i-1)*i)%100==0)//i*i-i等价与(i-1)*i 由于题目仅仅是对两位数进行处理,所以可以采用%100的方式
7 printf("%d\n",i);
8 }
9 return 1;
10 }
3.3在某些场所,我们需要对计量数据和单位进行分割,并进行输出。
举例:1.5kg
输出:
1.5
kg
请写程序进行分割输出。
1 #include <stdio.h>
2 #include <string.h>
3 /*------------------------
4 由于题意只是要求对数字和单位分离
5 但是,数据的格式需要保留,所以
6 本程序思路:
7 首先分别一行的所有信息至sourcestr[]
8 然后sscanf对sourcestr进行分离数据和单位字符串
9 进而在读取的sourcestr中匹配单位字符串的位置
10 然后对sourcestr字串进行分离输出
11 -------------------------*/
12 int main()
13 {
14 char sourcestr[50];
15 char desstr[50];
16 double dnumber=0;//双精度数据
17 int position=0;
18 while(scanf("%s",sourcestr)!=EOF)
19 {
20 //
21 sscanf(sourcestr,"%lf%s",&dnumber,desstr);
22 //寻找单位出现的位置,进行提取数字
23 position=strcspn(sourcestr,desstr);
24 for(int i=0;i<strlen(sourcestr);i++)
25 {
26 if(i==position)
27 printf("\n");
28 putchar(sourcestr[i]);
29 }
30 printf("\n");
31 }
32 return 1;
33 }
2 #include <string.h>
3 /*------------------------
4 由于题意只是要求对数字和单位分离
5 但是,数据的格式需要保留,所以
6 本程序思路:
7 首先分别一行的所有信息至sourcestr[]
8 然后sscanf对sourcestr进行分离数据和单位字符串
9 进而在读取的sourcestr中匹配单位字符串的位置
10 然后对sourcestr字串进行分离输出
11 -------------------------*/
12 int main()
13 {
14 char sourcestr[50];
15 char desstr[50];
16 double dnumber=0;//双精度数据
17 int position=0;
18 while(scanf("%s",sourcestr)!=EOF)
19 {
20 //
21 sscanf(sourcestr,"%lf%s",&dnumber,desstr);
22 //寻找单位出现的位置,进行提取数字
23 position=strcspn(sourcestr,desstr);
24 for(int i=0;i<strlen(sourcestr);i++)
25 {
26 if(i==position)
27 printf("\n");
28 putchar(sourcestr[i]);
29 }
30 printf("\n");
31 }
32 return 1;
33 }
3.4输出今年有多少毫秒(提示:今年不是闰年)
1 #include <stdio.h>
2 #include <string.h>
3 int main()
4 {
5 //这里用365.0提升数据的表示范围,防止数据的溢出
6 //输出进行类型转换long
7 printf("%ld\n",(long)(365.0*24*60*60*1000));//365天*24小时*60分钟*60s*1000毫秒
8 return 1;
9 }
2 #include <string.h>
3 int main()
4 {
5 //这里用365.0提升数据的表示范围,防止数据的溢出
6 //输出进行类型转换long
7 printf("%ld\n",(long)(365.0*24*60*60*1000));//365天*24小时*60分钟*60s*1000毫秒
8 return 1;
9 }
作者:W.M.steve
出处:http://www.cnblogs.com/weisteve/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://www.cnblogs.com/weisteve/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。