[英]Issue with scanf(“%s”)
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個測試用例的輸入,每個測試用例具有兩行輸入。
3
2 1
11
2 2
11
4 1
1001
應該給輸出
1
10
0
11
2
1010
這基本上是執行一些標准編程競賽內容的代碼。 它吸收了測試用例的數量,並且每個測試用例都在兩行中打印出所需的答案。現在,當我逐行鍵入所有輸入時,它可以正常工作並獲得所有輸出。 但是,當我僅將所有輸入粘貼在一起時,除了最后一個輸出外,我只會得到所有東西,而且我必須按Enter鍵才能獲得最后一個輸出。 現在,我進行了一些基本的調試,發現它與scanf("%s",ch)
行的代碼有關。 任何幫助..我也覺得程序的邏輯沒關系。 我在這里錯過了更基本的東西...
我認為復制粘貼文本時不會復制“ \\ r \\ n”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.