++增量运算符

时间:2015-05-30 19:51:17

标签: c operators increment

我有一个字符串,其中我应该计算要删除的最小字符数,使得修改后没有两个相邻字符相同 例如如果给我一个像RRGB这样的字符串,我的代码应该输出1(删除重复的R),对于RRRRR它的4(删除4个额外的R)

链接到问题:(以防我附加链接,如果不清楚) http://codeforces.com/problemset/problem/266/A

我最初写的代码是:

#include<stdio.h>
int main(void){
   char k,s[51];
   int n,l,i,c=0;
   scanf("%d",&n);
   scanf("%s",s);
     for(i=1;i<n+1;){
       while(s[i++]==s[i-1]); /*LINE OF INTEREST */
       ++c;
       }
       printf("%d",n-c);
     return 0;
 }

while语句来自另一个人实现的另一个问题。回到问题

while语句while(s [i ++] == s [i-1]);导致分段错误(核心转储),而(s [i-1] == s [i ++])工作完全正常,并为我的解决方案提供正确的答案

它们有什么不同?

注意:其他人提交(Codeforces上的接受提交)也不起作用并导致无限循环,就像我的代码和更改为while(s [i-1] == s [i ++])工作正常再次就像我的代码。 它是用来处理旧的C编译器的东西,或者它与它无关,并且两个语句都不同?

0 个答案:

没有答案