include <iostream>
#include <stdio.h>
using namespace std;
int main() {
int n;
scanf("%d",&n);
int l,k;
for(int i=0;i<n;i++)
{
scanf("%d %d",&l,&k);
char ch[l+1];
/****/ scanf("%s",ch);
printf("Are we here");
char ci=ch[0];
int flips=0;
int count=0;
for(int j=0;j<l;j++)
{
if(ch[j]==ci)
{
count++;
if(count>k)
{
flips++;
count=1;
if(ci=='1')
{
ci='0';
ch[j]='0';
}
else if(ci=='0')
{
ci='1';
ch[j]='1';
}
}
}
else if(ch[j]!=ci)
{
if(ci=='1')
ci='0';
else if(ci=='0')
ci='1';
count=1;
}
}
printf("\n%d",flips);
printf("\n%s",ch);
}
return 0;
}
輸入3個測試用例,每個測試用例有兩行輸入。scanf問題(「%s」)
3
2 1
11
2 2
11
4 1
1001
應該給輸出
1
10
0
11
2
1010
這基本上是做了一些標準編程大賽的東西代碼。它需要測試用例的數量,並且對於每個測試用例,打印出兩行所需的答案。現在,當我逐行輸入所有輸入時,它可以正常工作,並且可以獲得所有輸出。但是當我只是複製粘貼所有的輸入時,我只能得到除最後一個輸出以外的所有內容,而我必須按回車鍵才能獲得最後的輸出。現在我做了一些基本的調試,發現它與scanf("%s",ch)
代碼行有關。任何幫助..此外,我覺得程序的邏輯並不重要。我想的東西更爲基本的這裏...
不會複製刪除空行,並重新縮進你的代碼。 –
警告:此代碼可被利用。你不應該使用'scanf(「%s」)' – rev
你有什麼建議? – user2277550