簡體   English   中英

scanf(“%s”)有問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM