这两天终于把数据结构和算法学完了,真是不容易,其实也不能说学完了,就是在脑子里面过了一遍。今也在各大网站看了一下题目,发现牛客网和letcode是很多人选择,但我看这两个都是面向对象答题的,也就是写接口函数(我对接口函数理解不深,也就是简单认为写主要函数)但我看这个不适合竞赛,因为竞赛需要写出完整代码,包括上两个没有给的主函数,所以我苦苦搜索,最后找到了蓝桥杯官网的题目。感觉这就是一个卖课网站,因为题啥都没分类,就随便给了点题,完整题目还要买,于是我又开始苦苦搜索,希望可以在里面找到题目分类。
终于我看了一篇博客后,找到了一个好网站,推荐大家也去,这里题是免费的,题目全,分类全,acm和蓝桥杯真题也有,这就是c派的福音,我在网上搜资料,大多都是c++,java,尤其是洛谷,这不就一个c++网站吗。
花了一块大洋,在该网站买了一个答题的一个流程小课程。学了一个东西,来和大家分享。
此题是acm1085题,题目为英文,翻译出来大概就是两数相加,我一看这好家伙,这不直接scanf,printf吗,不出意外,这是错误想法,代码如下
#include<stdio.h>
int main(){
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",a+b);
}
1 3
4--------------------------------
Process exited after 4.929 seconds with return value 2jie
结果如上。
但报错,然后我想为什么,看了结果,哦~~~~~~~~~~~~
重点在这,题目中明显说了consist of,后面样例和结果是这样的
输入样例
2 3
4 5
输出样例
5
9
哦,它是连续的,我这么写只有一次,果然阴险。
所以用到一个scanf的返回值,
#include<stdio.h>
int main()
{
int a,b;
while(scanf("%d%d",&a,&b))//利用scanf的返回值
{
}
printf("%d\n",a+b);
return 0;
}
但这样还是不对,尽管用了一个while循环,将scanf嵌入进去但这样的样例结果是这样的
1 2 3
1 2 3 4 4 5
e
9--------------------------------
那么我们可以知道,将printf放到scanf的while循环外后,所得到的结果是输入的个数,不是总和,那么就放到里面,放了,但还是缺点啥,于是改进后我我们得到了最终版本
#include<stdio.h>
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)==2)
{
printf("%d\n",a+b);
}
return 0;
}
结果为
1 2
3
5 6
11
e--------------------------------
如上,为连续处理。
以上。