原題:
入力文字列、およびデジタル・シーケンス発生の最も長い連続した文字列の開始位置をシークの長さ。
入力フォーマット:
文字列を入力し、スペースを含めることができます。
出力フォーマット:
コンテンツを出力:スペースで区切られた位置と長さを起動番号の最長シーケンス。出力は、末尾のスペースを。空の文字列の入力、出力「NULL」
サンプル入力:
123ab12345a
出力例:
5 5
実際、あなたは、シンプルで便利なの配列を得るために行うことができますが、直線状を取りたい手を練習し、その後、次のことができます。正しいコードは以下の通りです。
PTAの吸盤コンパイラはC(GCC)である場合には、物事の多くは、それを認識することはできません
書式#include <stdio.hに>
書式#include <string.hの>
書式#include <stdbool.h> // BOOLコンパイラでも認識できません、
#define LISTSIZE 20000
typedefのCHARデータ型。
typedefは構造体{
データ型データ[LISTSIZE];配列の//代表長さ
int型NLENGTH; // NLENGTHは、直線状の長さを示し
} SeqList。
空initList(SeqList *リスト){//初期化関数は、テーブルの長さを作ることである線形である0
リスト - > NLENGTH = 0; //リストポインタが括弧内に放出された実行
}
BOOL listEmpty(SeqList *リスト){//リニアテーブルポインタを決定するには空であるが、より効率的にポインタ使用しなくてもよいです
戻りリスト - > NLENGTH == 0; //新たに0として定義される線形テーブルの長さを設定します
}
ブール挿入(SeqList *リスト、INT I、データ型x)は{
アレイの場合(リスト - > NLENGTH == LISTSIZE){//もし全長、次いで偽を返します
falseを返します。
}
int型insertPosition =私は; //は、挿入ポイントの私に設けられています。
IF(I <0)insertPosition = 0;要素の挿入位置がゼロ以上であれば、ヘッダのテーブルの上に置く//
insertPosition =リスト - > NLENGTH(I>リスト - > NLENGTH-1)場合、iは線形形式の最後の要素のインデックスよりも大きい場合//は、尻尾の上に置く、もちろん、falseに変更することができます
(int型私=リスト - > NLENGTH-1; i>を= insertPosition; I - )はこちら{//均等の注意
リスト - >データ[I + 1] =リスト - >データ[I]を、
}
リスト - >データ[insertPosition] = X。
リスト - > NLENGTH ++;
trueを返します。
}
INTメイン(){
SeqList L。
int型のカウント= 0;
int型COU = 0;
int型、A = 0;
int型の解像度、場所;
チャーREC [20000]。
initList(&L); //ビルドテーブル
scanf関数( "%s" は、&REC); //注scanfのアドレス値を送信することができません
一方、(REC [A]!=「\ 0」){//これは、キーボードからの実際の入力文字の数を計算するために
COU ++;
++;
}
以下のために(INT I 0 =; I <COU; I ++){//テーブルにキーボードデータを取得します
インサート(&L、I、REC [I])。
}
(listEmpty(&L)){//注意ここで0を返す場合、
printf( "NULL");
0を返します。
}
以下のために(INT I 0 =; I <COU; I ++){
(l.data [I]> = '0' && l.data [I] <= '9'){//離れ直接比較取得する場合
数++; //実際には3段階のロジックと数学の質問
位置= I + 1カウント; //数値のシーケンスを計算するためのカウンタとしての長さをカウントし、そして文字が一度表示され、カウント値はゼロになります
RES =カウント; //このステップは、実際には質問に開いているが、吸盤PTA後
}
他のカウント= 0;
}
printf( "%D%D"、場所、RES)。
0を返します。
}