第一次测试
来源:互联网 发布:mac ntfs读写插件破解 编辑:程序博客网 时间:2024/05/07 06:42
第一次测试
之前新创建的博客,要三天之后才能上传博文,所以到今天才上传上一次的题目。
1171 Problem A: a + b ——C语言初学者百题大战之四
Description
上一题过的轻松吗?是不是老忘了scanf函数的格式?特别是那个&?以后不要再忘了哦?
那么再来一题吧。这题要求计算a+b的和了。
Input
输入2个整数a和b,中间用一个空格隔开
Output
输出为三行,
第1行输出 a=a,其中红色的a代替a的值,
第2行输出 b=b,其中红色的b代替b的值,
第3行输出 s=s,其中红色的s代替a+b的和,然后再换行。
Sample Input
1 2
Sample Output
a=1b=2s=3
源代码:
#include<stdio.h>
int main()
{
int a,b,s;
scanf("%d%d",&a,&b);
printf("a=%d\n",a);
printf("b=%d\n",b);
printf("s=%d\n",a+b);
return 0;
}
结果截图:
第一次用c++写没通过,他们说是系统问题,不能用c++,后来改为c 就可以了。
1067 Problem C: HBUT
Description
观察以下图片
Input
输入为一个字符,可能为任意大小写字母和@!#$%^&*()字符中的任意一个。
Output
输出由该字符组成的形如上图的HBUT
Sample Input
@
Sample Output
如上图
源代码:
#include<stdio.h>
int main()
{
char a;
scanf("%c",&a);
printf("%c %c %c%c%c%C %c %c %c%c%c%c%c\n",a,a,a,a,a,a,a,a,a,a,a,a,a);
printf("%c %c %c %c %c %c %c\n",a,a,a,a,a,a,a);
printf("%c %c %c %c %c %c %c\n",a,a,a,a,a,a,a);
printf("%c%c%c%c%c %c%c%c%c %c %c %c\n",a,a,a,a,a,a,a,a,a,a,a,a);
printf("%c %c %c %c %c %c %c\n",a,a,a,a,a,a,a);
printf("%c %c %c %c %c %c %c\n",a,a,a,a,a,a,a);
printf("%c %c %c%c%c%c %c%c%c %c\n",a,a,a,a,a,a,a,a,a,a);
return 0;
}
结果截图:
之前在初级程序设计的考试的时候做过这个题,也做出来了, 关键就是根据图片上的空格依次输出字符。空格的地方和要输出字符的个数不能错误了。
1000 Problem D: A+B Problem
Description
Calculate a+b
Input
Two integer a,b (0<=a,b<=10)
Output
Output a+b
Sample Input
1 2
Sample Output
3
源代码:
#include<stdio.h>
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
{
printf("%d\n",a+b);
}
return 0;
}
结果截图:
这个题目和第一个一样的,重点就是要实现重复输入功能。
思考:但是c++中怎么实现重复输入呢?
使用 while((cin>>a>>b)) 就可以了。
1172 Problem B:求较大的数——C语言初学者百题大战之七
Description
求较大的数
Input
输入2个整数a和b,用一个或几个空格隔开
Output
输出其中较大的数,并换行
Sample Input
4 5
Sample Output
5
源代码:
#include<stdio.h>
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
{
if(a>b)
printf("%d\n",a);
else
printf("%d\n",b);
}
return 0;
}
结果截图:
这个题目试过好多次,用了好多种方法, 结果最后他们说是系统答案错误,学长改了之后,直接提交就可以了………
1165 Problem E: ID card
Description
密码学家亘古教授,破解了居民身份证号的密码,他可以分辨出身份证号的真假,还能猜出你身份证最后一位数字。下面是亘古教授计算身份证号末位的办法
1.计算校验位
∑(id[i]×Sec[i])(mod 11) //身份证前17位乘对应的校验位的和,对11取模
Sec[17] = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}
2.通过校验位得出真实数字
校验位 0 1 2 3 4 5 6 7 8 9 10
真实数字 1 0 X 9 8 7 6 5 4 3 2
亘古教授想请我们HBUT的天才们设计一个程序,当输入身份证号前17位时补全第18位,当输入18位身份证号时验证它的真假。
Input
输入17位或者18位长度的N行字符串
Output
当输入的18位身份证为真时输出 True
当输入的18位身份证为假时输出 False
当输入身份证前17位时完整输出该身份证号码
Sample Input
4205831989060400142058319890604001042058319890604001X
Sample Output
420583198906040010TrueFalse
Hint
特别提示,身份证末尾X为大写。
源代码:
#include<stdio.h>
#include<string.h>
int main()
{
char a[20];
char b[12]={"10X98765432"};
int Sec[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
while(scanf("%s",&a)!=EOF)
{
int i,t,s=0;
for(i=0;i<17;i++)
s=(a[i]-'0')*Sec[i]+s;
t=s%11;
if(strlen(a)==17)
printf("%s%c\n",a,b[t]);
else
{
if(a[17]==b[t])
printf("True\n");
else
printf("False\n");
}
}
return 0;
}
结果截图:
老实说这个题目首先就没看懂,琢磨了好半天,后来才知道是输入身份证号,先看前17位,身份证前17位乘对应的校验位的和,对11取模,然后对比,当输入身份证号前17位时补全第18位,当输入18位身份证号时验证它的真假。
并且为了防止转换成ASCII码,要用s=(a[i]-'0')*Sec[i]+s; 减去‘0’;先比较长度是否等于17,等于就输出前17位和正确的第18位,如果等于18,则和表中对应的结果来判断。
第一次是提交的时候没过,后来发现输出的时候的文字写错了,改后就通过了。
感觉ACM很注重格式。有的时候用VC 6.0可以提交,但是却过不了。
- 第一次测试
- 第一次测试
- 第一次测试
- 第一次测试
- 第一次测试
- 第一次测试
- 第一次【测试】
- 第一次测试
- 第一次测试Blog
- 第一次使用,测试一下
- 第一次发帖测试
- 第一次测试:王者归来
- 第一次使用,测试
- 第一次发,测试
- 第一次博客测试
- 第一次英语测试,记忆犹新!
- 记第一次回归测试
- C#第一次测试
- 南阳理工 oj 图的邻接表dfs dfs 均可
- 网络中数据传输过程浅析
- 将40-200末位数为5的整数求和,要求在实现中要体现Linq技术
- kangle web 的常见问题收集和兼容性解决方案
- cocos2d-2.1rc0-x-2.1.2-hotfix win32 android环境搭建
- 第一次测试
- 我在VS2008中找不到ToolBar等控件
- 为何安卓机器中在设置中看到的RAM比实际小
- Mybatis 配置 lazyLoadingEnabled=true 的错误
- c++基础学习网址
- Android 软键盘盖住输入框的问题
- 使用单例模式实现自己的HttpClient工具类
- 【python】多进程中的内存复制
- Silverlight DataGri列模版,行头图标模版,列头模版,多重表头,,编辑模版,样式