算法竞赛入门经典——<1>

想着要学算法已经很长时间了,但一直都是有问题自己想,很少受“正规军”编排,网上关于算法的书倒是不少,其一必推《算法导论》,还有一本《算法竞赛入门经典》,作者刘汝佳,好了,步入正题,两天时间从第一章到第三章结尾,算是对C又进行了一遍复习,说一下新得

 

%3d
%-3d
%03d


知道它们的区别吗,在调用printf时候,第一个表示输出格式三位,不足三位左补空格,当然如果超过三位则正常输出应该的位数,第二个和第一个区别则是右补,其他都一样,第三个和第一个也一样只是这一次补的是代替空格补0了

 

printf需要输出特殊字符\n,%d怎么办,看下面

printf("\\n");
printf("%%d");

下面介绍一些函数

计算程序运行时间的

clock()/CLOCKS_PER_SEC

这个在time.h 里面,其中CLOCKS_PER_SEC与机器有关,必须要除,不然得到的值没有实际意义

输入输出重定向

在使用时候,txt文件和C文件放在一起

 

freopen("1.txt","r",stdin);
freopen("1.txt","w",stdout);

 

这两个主要是输入输出大量数据,键入不方便时候使用在stdio.h里面

两个数组之间是不能直接赋值,有函数memcpy();memset();用法如下:

char a[4]={0,1,2,3},b[4]={4,5,6,7};
memset(a,19,2);
printf("%d %d %d %d\n",a[0],a[1],a[2],a[3]);

这样输出数组a的值为19,19,2,3;看出来了吧,memset是给数组重新赋值的,三个参数分别是对象,数值,个数和memset类似,memcpy则是复制一个数组里面k个元素给另一个,看下面的例子

char a[4]={0,1,2,3},b[4]={4,5,6,7};
memcpy(a,b,2);
printf("%d %d %d %d\n",a[0],a[1],a[2],a[3]);

这样数组a值为4,5,2,3:当然要是数组很大又想全部赋值就直接传入第三个参数sizeof(b)就OK了,还有一个适应于字符串赋值的函数strcpy(a,b),意思将b中字符串给a,这三个在string.h里面

最后提一下C中“”和‘’的区别,简单来说大小,“”用在字符串,‘’用在字符.比如下面这一段

if(c=='A'){printf("%c",'H');
if(c=='A'){printf("%s","H");

以上是我觉得新人可能会需要的,其实算法就是解决问题的办法,更关键的是能够熟练掌握C,自然可以得心应手处理复杂问题

 

 

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值