指定された文字列で1で始まり1で終わる部分文字列の数を出力します

クマール

たとえば、入力文字列が「00100101」の場合、出力部分文字列は「1001」、「100101」、「101」である必要があります。

機能に間違いがあると思いますが、よくわかりません。2つのエラーが発生しました24行目6列目[エラー]「binarysubstring」のタイプが競合しています4行目6列目[注]「binarysubstring」の以前の宣言はここにありました

#include<stdio.h>
#include<string.h>

long binarysubstring(int, char);

int main()
{
    int t,n,count;
    long r;
    char a[n+1];
    t=0;
    scanf("%d",&n);
    scanf("%s",&a);
    r=binarysubstring(n, a[n]);
    printf("%ld",r);
}

long binarysubstring(int n,char a[n])
{
    int i;
    long r;
    for(i=0;i<n;i++)
    {
        if(a[i]==1)
        {
            r+=1;
        }
    }
    r=((r*(r-1))/2);
    return r;
}
rFy

ここで処理する間違いは複数あるので、コンパイル時に表示されるエラーから説明して修正しようと思います。

まず、コンパイルエラーは、関数宣言がchar文字配列ではなく2番目の引数としてを使用するためです。4行目は代わりに

long binarysubstring(int, char[]);

また、18行目の関数シグネチャ内で配列サイズを宣言しないでください。

もう1つの当面の問題は、入力のchar a[n+1];10行目でバッファを初期化して、12行目で定義することです。8行目で宣言されたとき値を定義しなかったため、10行目は実際にはサイズn +1の文字配列を宣言します。 = 0 + 1 = 1、これは入力を保存できません。nn

これら3つの問題を修正して、次のコードをClang-7でコンパイルしました。

#include<stdio.h>
#include<string.h>

long binarysubstring(int, char[]); // Added the brackets here

int main()
{
    int t,n,count;
    long r;
    t=0;
    scanf("%d",&n); // Moved this...
    char a[n+1]; // ...to be before this
    scanf("%s", a);
    r=binarysubstring(n, a);
    printf("%ld",r);
}

long binarysubstring(int n, char a[/*Removed n, do not pass anything here*/]) 
{
    int i;
    long r;
    for(i=0;i<n;i++)
    {
        if(a[i]==1)
        {
            r+=1;
        }
    }
    r=((r*(r-1))/2);
    return r;
}

ただし、このコードは常に0を返します。これは、24行目でifステートメントがそれぞれchar整数と比較し、整数が1の実際の文字はないASCIIコードに解析されるためです。その結果、r条件が真になることはないため、インクリメントされることはありません。入力しているバイナリ文字列を使用すると、最終的な合計式まで0のままになり、最終的な合計式も0と評価されます。

この時点で、私はあなたの質問が尋ねるものを実装するための私の試みをします:

#include <stdio.h>

long binarysubstring(unsigned short, char[]);

int main() {
    unsigned short n;
    printf("Input the length of your string: ");
    scanf("%hu", &n);
    char input[n + 1];
    printf("Input the binary string: ");
    scanf("%s", input);
    long answer = binarysubstring(n, input);
    printf("Answer: %ld\n", answer);
}

long binarysubstring(unsigned short n, char a[]) {
    long r = 0;
    for (unsigned short i = 0; i < n; ++i) {
      if (a[i] == '1') {
        ++r;
      }
    }
    return r*(r-1)/2;
}

これは、入力がバイナリ文字列であることを前提としています。私はあなたが見ているのと同じアルゴリズムを使用し、文字列に1が現れる回数を数え、r1からまでのシーケンスの整数の合計を返しrます。また、長さが1のバイナリ文字列の場合は0を返します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

文字の4番目の出現からPSQLで指定された文字列の終わりまで部分文字列を取得する方法

分類Dev

で始まり、で終わる単語の部分文字列を検索する

分類Dev

行の終わりまで部分文字列を削除します

分類Dev

文字列から、SOTで始まりEOTで終わる部分文字列を削除します

分類Dev

文字列から、SOTで始まりEOTで終わる部分文字列を削除します

分類Dev

{{で始まり}で終わる文字列内のすべての部分文字列を検索する方法

分類Dev

文字列内の指定された部分文字列を1回の反復で、またはO(n * m)より速く見つけることは可能ですか?

分類Dev

正規表現javascriptで指定された文字列からすべてのサブ文字列を選択するのは「CREATETABLE」で始まり「;」で終わります。

分類Dev

指定された部分文字列で始まる単語の最初から最後まで部分文字列を取得する方法-Ruby

分類Dev

subで始まり、subで終わる最大の部分文字列を再帰的に計算し、その長さを返します

分類Dev

パンダ:ハイフンの前後に、指定された部分文字列で終わる特定のテキストを抽出します

分類Dev

特定の文字で始まる部分文字列を削除します

分類Dev

大きな文字列から正規表現で始まり、正規表現で終わるすべての部分文字列を抽出します

分類Dev

正規表現-特定の文字列で始まりますが、別の部分文字列で終わりません

分類Dev

C ++で指定された文字列の部分文字列を置き換えます

分類Dev

PowerShellで指定されたすべての部分文字列を取得します

分類Dev

既知の位置で始まり、特定の文字で終わる文字列から部分文字列を削除できますか?

分類Dev

Pythonの正規表現を使用して、文字列内の指定された部分文字列で開始および終了するすべての文字列を検索します

分類Dev

部分文字列のphp正規表現は、Aで始まり、AとBを削除するためにBで終わります。

分類Dev

Pythonで特定の文字で開始および終了する文字列内の部分文字列のインデックスを検索して出力します

分類Dev

$ {で始まり、}で終わる文字列を抽出します

分類Dev

Regexp-文字列が指定された文字で始まるか終わるかを確認する方法は?

分類Dev

文字で始まり別の文字で終わるテキストファイル内の部分文字列を置き換えます

分類Dev

列Aのどの(複数の)セルに列Bで指定された部分文字列が含まれているかを確認しますか?

分類Dev

指定された部分文字列を持つ単語で始まる最も内側の中括弧内のテキストを検索します

分類Dev

xCharsxIntsで作成された文字列の部分文字列を取得します

分類Dev

文字列のリストを、キーが指定された部分文字列で始まるリストの辞書に変換する方法

分類Dev

文字列内の「vi-」で始まる部分文字列を削除します

分類Dev

文字列の母音で始まり子音で終わる最小および最大の部分文字列を吐き出すアルゴリズム

Related 関連記事

  1. 1

    文字の4番目の出現からPSQLで指定された文字列の終わりまで部分文字列を取得する方法

  2. 2

    で始まり、で終わる単語の部分文字列を検索する

  3. 3

    行の終わりまで部分文字列を削除します

  4. 4

    文字列から、SOTで始まりEOTで終わる部分文字列を削除します

  5. 5

    文字列から、SOTで始まりEOTで終わる部分文字列を削除します

  6. 6

    {{で始まり}で終わる文字列内のすべての部分文字列を検索する方法

  7. 7

    文字列内の指定された部分文字列を1回の反復で、またはO(n * m)より速く見つけることは可能ですか?

  8. 8

    正規表現javascriptで指定された文字列からすべてのサブ文字列を選択するのは「CREATETABLE」で始まり「;」で終わります。

  9. 9

    指定された部分文字列で始まる単語の最初から最後まで部分文字列を取得する方法-Ruby

  10. 10

    subで始まり、subで終わる最大の部分文字列を再帰的に計算し、その長さを返します

  11. 11

    パンダ:ハイフンの前後に、指定された部分文字列で終わる特定のテキストを抽出します

  12. 12

    特定の文字で始まる部分文字列を削除します

  13. 13

    大きな文字列から正規表現で始まり、正規表現で終わるすべての部分文字列を抽出します

  14. 14

    正規表現-特定の文字列で始まりますが、別の部分文字列で終わりません

  15. 15

    C ++で指定された文字列の部分文字列を置き換えます

  16. 16

    PowerShellで指定されたすべての部分文字列を取得します

  17. 17

    既知の位置で始まり、特定の文字で終わる文字列から部分文字列を削除できますか?

  18. 18

    Pythonの正規表現を使用して、文字列内の指定された部分文字列で開始および終了するすべての文字列を検索します

  19. 19

    部分文字列のphp正規表現は、Aで始まり、AとBを削除するためにBで終わります。

  20. 20

    Pythonで特定の文字で開始および終了する文字列内の部分文字列のインデックスを検索して出力します

  21. 21

    $ {で始まり、}で終わる文字列を抽出します

  22. 22

    Regexp-文字列が指定された文字で始まるか終わるかを確認する方法は?

  23. 23

    文字で始まり別の文字で終わるテキストファイル内の部分文字列を置き換えます

  24. 24

    列Aのどの(複数の)セルに列Bで指定された部分文字列が含まれているかを確認しますか?

  25. 25

    指定された部分文字列を持つ単語で始まる最も内側の中括弧内のテキストを検索します

  26. 26

    xCharsxIntsで作成された文字列の部分文字列を取得します

  27. 27

    文字列のリストを、キーが指定された部分文字列で始まるリストの辞書に変換する方法

  28. 28

    文字列内の「vi-」で始まる部分文字列を削除します

  29. 29

    文字列の母音で始まり子音で終わる最小および最大の部分文字列を吐き出すアルゴリズム

ホットタグ

アーカイブ